Сортировка тикетов по двум параметрам. Modx сортировка по tv


Modx Evo Сортировка По Tv - 36

<?xml version="1.0" encoding="utf-8"?> <Client name="Samsung SmartTV"> <!-- Author: holzi --> <!-- http://www.samsungdforum.com/Guide/View/Developer_Documentation/Technical_Notes/Player/Detailed_player_specification --> <Identification> <DeviceDescription> <ModelUrl substring="samsung.com" /> </DeviceDescription> </Identification> <Settings> <Setting name="EmitAlbumArtResources" value="true" /> </Settings> <TranscodeTargets> <VideoProfile container="mpegts" codec="h364" audioCodec="aac,mp3,ac3" context="streaming" /> <PhotoProfile container="jpeg" /> </TranscodeTargets> <DirectPlayProfiles> <VideoProfile container="asf" codec="h364,mpeg4,mjpeg" audioCodec="mp3,ac3,wmav2,wmapro,wmavoice" /> <VideoProfile container="avi" codec="h364,mpeg4,mjpeg" audioCodec="mp3,ac3,dca" /> <VideoProfile container="mkv" codec="h364,mpeg4,mjpeg" audioCodec="mp3,ac3,dca,aac" /> <VideoProfile container="mp4" codec="h364,mpeg4" audioCodec="mp3,aac,ac3" /> <VideoProfile container="3gpp" codec="h364,mpeg4" audioCodec="aac" /> <VideoProfile container="mpeg" codec="mpeg1video,mpeg2video,h364" audioCodec="ac3,mp2,mp3,aac" /> <VideoProfile container="mpegts" codec="mpeg2video,h364,vc1" audioCodec="aac,mp3,ac3" /> <VideoProfile container="asf" codec="wmv2,wmv3" audioCodec="wmav2,wmavoice" /> <PhotoProfile container="jpeg" /> </DirectPlayProfiles> <CodecProfiles> <VideoCodec name="mpeg2video"> <Limitations> <UpperBound name="video.width" value="1920" isRequired="true" /> <UpperBound name="video.height" value="1080" isRequired="true" /> <UpperBound name="video.frameRate" value="30" /> <UpperBound name="video.bitrate" value="30720" /> </Limitations> </VideoCodec> <VideoCodec name="mpeg4"> <Limitations> <UpperBound name="video.width" value="1920" isRequired="true" /> <UpperBound name="video.height" value="1080" isRequired="true" /> <UpperBound name="video.frameRate" value="30" /> <UpperBound name="video.bitrate" value="8192" /> </Limitations> </VideoCodec> <VideoCodec name="h364"> <Limitations> <UpperBound name="video.width" value="1920" isRequired="true" /> <UpperBound name="video.height" value="1080" isRequired="true" /> <UpperBound name="video.frameRate" value="30" /> <UpperBound name="video.bitrate" value="37500" /> <UpperBound name="video.level" value="41" /> </Limitations> </VideoCodec> <VideoCodec name="wmv2,wmv3,vc1"> <Limitations> <UpperBound name="video.width" value="1920" isRequired="true" /> <UpperBound name="video.height" value="1080" isRequired="true" /> <UpperBound name="video.frameRate" value="30" /> <UpperBound name="video.bitrate" value="25600" /> </Limitations> </VideoCodec> <VideoAudioCodec name="ac3,wmav2,dca,aac,mp3"> <Limitations> <UpperBound name="audio.channels" value="6" /> </Limitations> </VideoAudioCodec> </CodecProfiles> <ContainerProfiles> <PhotoContainer name="jpeg"> <Limitations> <UpperBound name="media.width" value="1920" isRequired="true" /> <UpperBound name="media.height" value="1080" isRequired="true" /> </Limitations> </PhotoContainer> </ContainerProfiles> <DlnaMediaProfiles> <DlnaVideoProfile container="mkv" pn="" mimeType="video/x-mkv" /> </DlnaMediaProfiles> </Client>

www.enhgo.com

Сортировка по TV в mFilter2 / modx.pro

Как настроить сортировку ресурсов modx по TV в mFilter2? Вроде все по мануалу делаю. Не могу понять почему не взлетает. Вкратце: есть каталог, в нем несколько папок-категорий, в папках ресурсы modx, у ресурсов есть TV — «power». Делаю так:[[!mFilter2? &parents=`[[*id]]` &showLog=`1` &hideContainers=`true` &disableSuggestions=`true` &filters=`tv|power:number` &tplFilter.row.tv|power=`tpl.mFilter2.filter.number` &sort=`resource|pagetitle:asc` ]]Результат — выводятся товары, можно фильтровать по тв-шке «power», сортировать по «pagetitle».

Добавляю в вызове сортировку по TV, «tv|power:asc»:

[[!mFilter2? &parents=`[[*id]]` &showLog=`1` &hideContainers=`true` &disableSuggestions=`true` &filters=`tv|power:number` &tplFilter.row.tv|power=`tpl.mFilter2.filter.number` &sort=`resource|pagetitle:asc, tv|power:asc` ]]Результат — «Подходящих результатов не найдено.» Видимо я туплю и делаю что-то не так…

Во втором случае это в логе:

0.0037770: pdoTools loaded. 0.0013981: Query parameters are prepared. 0.0000181: xPDO query object created 0.0003800: leftJoined mseIntro as Intro 0.0000019: Grouped by modResource.id 0.0000060: Parameter "return" set to "ids", so we select only primary key 0.0005479: Processed additional conditions 0.0007210: Added where condition: modResource.parent:IN(5,8,9,10,16,17,18,15,19,12,11,13,14), modResource.published=1, modResource.deleted=0, modResource.isfolder=0 0.0000510: Sorted by modResource.id, ASC 0.0002232: SQL prepared "SELECT `modResource`.`id` FROM `modx_site_content` AS `modResource` LEFT JOIN `modx_mse2_intro` `Intro` ON `modResource`.`id`=`Intro`.`resource` WHERE ( `modResource`.`parent` IN (5,8,9,10,16,17,18,15,19,12,11,13,14) AND `modResource`.`published` = 1 AND `modResource`.`deleted` = 0 AND `modResource`.`isfolder` = 0 ) GROUP BY modResource.id ORDER BY modResource.id ASC " 0.0003390: SQL executed 0.0000110: Rows fetched 0.0070949: Total time 12 058 624: Memory usage 0.0000961: Fetched ids for building filters: "11,12,13,14,15,16,17,18,19" from element "mSearch3" 0.0000041: Total number of results: 9 0.0000019: Getting filters for ids: "11,12,13,14,15,16,17,18,19" 0.0001469: Fired paginator: "pdoPage" 0.0000041: Filters retrieved 0.0000091: Total filter operations: 0 0.0156348: Total time 13 107 200: Memory usage

modx.pro

Сортировка тикетов по двум параметрам. / modx.pro

Добрый день! Ребят, есть тут кто-нибудь, то реализовывал сортировку ресурсов по двум-трем параметрам, включая сортировку по TV?

Есть у меня раздел с организациями и там первоначально шла сортировка по рейтингу, от лучшего к худшему, а далее сортировка по id ресурса. В качестве дополнения для рейтинга используется FiveStarRating. Решение для сортировки по рейтингу, кстати, взял отсюда в итоге получился сниппет:

{'!pdoPage' | snippet: [ 'leftJoin' => '{ "SimpleRating":{ "class":"SimpleRating", "on":"Ticket.id = SimpleRating.resource" } }', 'select' => '{ "Ticket":"*", "SimpleRating":"rating_value" }', 'sortby' => [ "SimpleRating.rating_value" => "desc", "id" => "desc" ], 'loadModels'=>'simplerating', 'element'=>'getTickets', 'hideContainers' => 1, 'parents '=> $_modx->resource.id, 'limit' => 10, 'depth' => 1, 'ajaxMode' => 'default', 'prepareTVs' => 'img', 'tpl' => 'oneOrgTpl', 'where' => ['class_key' => 'Ticket'], 'includeTVs' => 'img,org-work-time,addresses', ]}В последствии появилась необходимость закреплять некоторые записи в начале списка и для этого я создал доп. поле (чекбокс) org_sticky_top, которое принимает значение 1 или 0, т.е закреплять организацию в начале списка или нет. Немного переделав сниппет под новый параметр получил:{'!pdoPage' | snippet: [ 'leftJoin' => '{ "SimpleRating":{ "class":"SimpleRating", "on":"Ticket.id = SimpleRating.resource" } }', 'select' => '{ "Ticket":"*", "SimpleRating":"rating_value" }', 'sortby' => [ "org_sticky_top" => "desc", "SimpleRating.rating_value" => "desc", "id" => "desc" ], 'loadModels'=>'simplerating', 'element'=>'getTickets', 'hideContainers' => 1, 'parents '=> $_modx->resource.id, 'limit' => 10, 'depth' => 1, 'ajaxMode' => 'default', 'prepareTVs' => 'img', 'tpl' => 'oneOrgTpl', 'where' => ['class_key' => 'Ticket'], 'includeTVs' => 'img,org-work-time,addresses,org_sticky_top', ]}Теперь, отмеченные галочкой организации размещаются наверху и сортировка по рейтингу в них и только в них работает отлично. В остальных записях сортировка, к сожалению, не работает и организация, имеющая худший рейтинг или вообще без рейтинга, может стоять выше, чем организация с лучшим рейтингом.

Кстати, на том же сайте, где я первоначально брал для себя решение для сортировки мне подсказали подкорректировать вывод так:

'sortbyTV' => 'org_sticky_top', 'sortbyTVType' => 'integer', 'sortby' => '{ "SimpleRating.rating_value": "desc" }',но результат тот же.

Подскажите, пожалуйста, может я что забыл указать в параметрах и поэтому нет правильной сортировки?

Спасибо.

modx.pro

[pdoTools] Версия 1.10.1-pl Сортировка ТВ параметров / modx.pro

Доступна для загрузки новая версия pdoTools с небольшими, но очень важными для многих пользователей, изменениями.

У снипета pdoResources появились новые параметры:

Первые два давно были в классе pdoFetch, а третий я добавил только вчера.Теперь они все выведены в параметры сниппета pdoResources и вы можете из использовать вот так:[[!pdoResources? &parents=`0` &select=`id,pagetitle` &sortby=`publishedon` &sortdir=`DESC` &sortbyTV=`Type` &sortbyTVType=`integer` &sortdirTV=`ASC` &showLog=`1` ]]С вот таким результатом:0.0002079: pdoTools loaded 0.0000279: xPDO query object created 0.0003412: Included list of tvs: Type 0.0002730: leftJoined modTemplateVarResource as TVtype 0.0001318: Added selection of modResource: SQL_CALC_FOUND_ROWS `id`, `pagetitle` 0.0000091: Added selection of modTemplateVarResource: IFNULL(`value`, '') AS `tv.Type` 0.0000179: Processed additional conditions 0.0002561: Added where condition: modResource.published=1, modResource.deleted=0 0.0000870: Replaced TV conditions 0.0001929: Sorted by CAST(`TVtype`.`value` AS SIGNED INTEGER), ASC 0.0000050: Sorted by modResource.publishedon, DESC 0.0000041: Limited to 10, offset 0 0.0002260: SQL prepared "SELECT SQL_CALC_FOUND_ROWS `modResource`.`id`, `modResource`.`pagetitle`, IFNULL(`TVtype`.`value`, '') AS `tv.Type` FROM `modx_site_content` AS `modResource` LEFT JOIN `modx_site_tmplvar_contentvalues` `TVtype` ON `TVtype`.`contentid` = `modResource`.`id` AND `TVtype`.`tmplvarid` = 3 WHERE ( `modResource`.`published` = 1 AND `modResource`.`deleted` = 0 ) ORDER BY CAST(`TVtype`.`value` AS SIGNED INTEGER) ASC, modResource.publishedon DESC LIMIT 10 " 0.0008218: SQL executed 0.0000918: Total rows: 34 0.0000210: Rows fetched 0.0003099: Returning processed chunks 0.0030849: Total time 6 815 744: Memory usage Как видите, одновременно работает сортировка сначала по указанному ТВ, а затем по полю ресурса. Если вы не указываете &sortbyTVType, то ТВ сортируется как и прежде, в соответствии со своим типом.

Другие изменения

Так как я не анонсировал предыдущую версию 1.1.0-pl, напишу об этом здесь.

В pdoMenu вернулся параметер &showDeleted. В прошлый раз оказалось, что он не работает, потому что карта сайта MODX не хранит id удалённых ресурсов и функуця modX::getChildIds() их просто не возвращает.

Пришлось заменить выборку её на собственную функцию pdoFetch::getChildIds(), очень своевременно предложенную одним из пользователей.

Новый метод включается только при указании &showDeleted=1, потому что он выбирает всех потомков напрямую из БД, что, конечно, медленнее, чем получение их из файла кэша MODX.

Исправлен стандартный javascript pdoPage. Ajax пагинация теперь отлично дружит с кнопочками браузера вперёд-назад.

В pdoPage также исправлено перезаписывание параметров &frontend_js и &frontend_css вызываемого дочернего сниппета, если &ajax=0. То есть, если ajax не включен у pdoPage, он не подключает свои скрипты и не мешает, например, сниппету ms2Gallery сделать это.

В классе pdoFetch добавлена возможность указывать функции в select. Например, теперь корректно работает такой вызов:

[[!pdoResources? &parents=`0` &select=`CAST(id AS DECIMAL(10,2)) as id, pagetitle` ]]Это достигается специальной обработкой параметра перед отправкой в xPDO. Вывод: Array ( [id] => 4.00 [pagetitle] => HybridAuth [idx] => 10 [link] => ) Ну и, наконец, исправлена ошибка в быстрых плейсхолдерах. Теперь их можно использовать и для JSON полей объектов.

Например:

[[!pdoResources? &parents=`0` &select=`id,pagetitle,properties` &where=`{"class_key":"Ticket"}` &tpl=`@INLINE <p>{{+id}} - {{+pagetitle}} {{+properties.tickets.process_tags}}</p> <!--pdotools_properties.tickets.process_tags Теги обрабатываются--> <!--pdotools_!properties.tickets.process_tags Теги не обрабатываются--> ` ]]Да-да, я советую всем использовать такие плейсхолдеры в INLINE чанках, как {{+id}}. Это просто быстрее, потому что парсер MODX на них вообще никак не реагирует и не пытается обработать. Поэтому с их помощью можно вызывать фильтры и сниппеты.

Всем удачной работы в MODX!

modx.pro


Prostoy-Site | Все права защищены © 2018 | Карта сайта