[Решено]Баг в pdoResources?
MODX 2.2.11, pdoTools 1.9.0pl2
В TV «HitsPage» хранится количество просмотров, сортируем товары по количеству просмотров от большего к меньшему(&sortby=`{«HitsPage»:«desc»}`).
Баг можно увидеть на странице http://eparket.com/brand/parador
На первой странице все хорошо. Товары идут согласно сортировке: 80, 72, 70, 62 просмотров и т.д.
Теперь переходим на последнюю страницу http://eparket.com/brand/parador, у последнего товара количество просмотров 101. Он должен быть самым первым, а показывается последним.
Для удобства вывел значения TV «HitsPage» в data-атрибут элемента списка Список товаров формируется так:
Оказалось вовсе не баг.
Цитата: «Нужно указать ТВ параметру тип «число», тогда при сортировке по нему данные будут приведены к типу DECIMAL. Заодно приведение типа будет и для ТВ «дата» — они отсортируются как DATETIME.»
В TV «HitsPage» хранится количество просмотров, сортируем товары по количеству просмотров от большего к меньшему(&sortby=`{«HitsPage»:«desc»}`).
Баг можно увидеть на странице http://eparket.com/brand/parador
На первой странице все хорошо. Товары идут согласно сортировке: 80, 72, 70, 62 просмотров и т.д.
Теперь переходим на последнюю страницу http://eparket.com/brand/parador, у последнего товара количество просмотров 101. Он должен быть самым первым, а показывается последним.
Для удобства вывел значения TV «HitsPage» в data-атрибут элемента списка Список товаров формируется так:
[[!pdoPage?
&limit=`20`
&showHidden=`0`
&parents=`[[*id]]`
&tpl=`listCatalog`
&depth= `2`
&includeTVs=`multiGallery, multiplycost, previewimage, currency, HitsPage`
&processTVs=`multiGallery, multiplycost`
&where=`{"template:IN":[18, 26, 27, 28]}`
&sortby=`{"HitsPage":"desc"}`
&maxLimit=`20`
&pageLimit=`7`
&cache=`1`
&cacheTime=`3600`
&tplPage=`@INLINE <li class="pagination__item"><a href="[[+href]]">[[+pageNo]]</a></li>`
&tplPageWrapper=`@INLINE <ul class="pagination" data-prev="[[+prev]]" data-next="[[+next]]">[[+pages]]</ul>`
&tplPageNext=`@INLINE [[+href]]`
&tplPagePrev=`@INLINE [[+href]]`
&tplPageNextEmpty=`@INLINE `
&tplPagePrevEmpty=`@INLINE `
&tplPageSkip=`@INLINE <li class="pagination__item pagination__item--disabled">…</li>`
&tplPageActive=`@INLINE <li class="pagination__item pagination__item--current">[[+pageNo]]</li>`
]]
В результате:Оказалось вовсе не баг.
Цитата: «Нужно указать ТВ параметру тип «число», тогда при сортировке по нему данные будут приведены к типу DECIMAL. Заодно приведение типа будет и для ТВ «дата» — они отсортируются как DATETIME.»
Комментарии: 2
Василий, спасибо. Работает.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.