Сортировка Global PHP

Аватар пользователя nasferatu nasferatu 27 ноября 2014 в 17:44

Подскажите как правильно сделать сортировку по полю Глобальный PHP?

return ($row1->php < $row2->php ? -1 : (int) $row1->php > $row2->php)

При данном раскладе сортируется в пределах только одной страницы, а нужно всех страниц.

Комментарии

Аватар пользователя Orion76 Orion76 27 ноября 2014 в 19:08

Добавить материалу "техническое" поле, для хранения "веса" материала.
Заполнить его во всех материалах можно при помощи VBO.

Сортировать стандартно по этому полю.

Иначе или никак.. или без вьюса..самому делать выборку..

Аватар пользователя nasferatu nasferatu 27 ноября 2014 в 19:14

orion76 wrote:
Добавить материалу "техническое" поле, для хранения "веса" материала.
Заполнить его во всех материалах можно при помощи VBO.

Сортировать стандартно по этому полю.

Иначе или никак.. или без вьюса..самому делать выборку..

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

Аватар пользователя Orion76 Orion76 27 ноября 2014 в 19:16

ТОгда какая разница, по какой цене сортировать..
Сортируйте по исходной..

Аватар пользователя nasferatu nasferatu 27 ноября 2014 в 19:21

а разница есть...если введена стоимость в долларах, например 100
второй товар введен в рублях, например 1000 и т.д.
Все в поле пхп приводим к единой валюте и сортируем и исходной и получаем что 100уе(4600) меньше 1000руб.

Аватар пользователя Orion76 Orion76 27 ноября 2014 в 19:56

Самый простой, надежный и ,я считаю, правильный способ - это дополнительное поле для цены в "основной" валюте..
Все остальное - или костыли или геморрой-)

Аватар пользователя nasferatu nasferatu 27 ноября 2014 в 20:07

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

Аватар пользователя Orion76 Orion76 27 ноября 2014 в 20:25

Судя по описанию, этот модуль позволяет сортировать views(sql-выборку) по математическому выражению..
Но скорее всего, поможет только если цены в неболее чем в 2-х валютах..

https://www.drupal.org/project/views_calc

UPD: возможно еще и вот-этот https://www.drupal.org/project/views_aggregator

UPD1: Хотя врядли эти модули могут условные выражения в sql-запросе..

Аватар пользователя nasferatu nasferatu 27 ноября 2014 в 22:59

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

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

Аватар пользователя Orion76 Orion76 28 ноября 2014 в 1:02

Я подобные задачи обычно немного по другому решаю..
Поищите решения при помощи модулей Views+Rules и т.п.

Аватар пользователя nasferatu nasferatu 28 ноября 2014 в 13:59

Решил попробовать через views bulk operations
Но есть возможность изменять массово значение по формуле?

Аватар пользователя nasferatu nasferatu 28 ноября 2014 в 15:05

можно выбрать Execute arbitrary PHP script, но там вручную вводить скрипт, но может можно в самом views прописать поле php и views bulk operations подхватить это поле?

Аватар пользователя nasferatu nasferatu 29 ноября 2014 в 0:39

пошел более легким путем.
Создал дополнительное поле, куда привожу стоимость к одниной валюте, по которому потом и сортирую. Но теперь есть необходимость переодически обновлять это поле после обновления курса. Тут уже приходить крон на помощь. Завтра буду разбираться как запустить пхп скрипт через крон.