@errogaht
PHP developer

Кто знает как сделать этот программный фильтр для Views?

Это вопрос для реально гуру.

ca600dbaabfa4fc28240392bab412a51.png

1. Есть нод типа товар

2. У товара есть множественное поле «Предложение» (Антон 100 руб. Игорь - 200 руб) то есть Антон предлагает этот товар за 100, Игорь за 200. У множественного поля соответственно 2 поля - Имя и Цена.

3. Views выдаёт фильтр в виде поля в которое просто вводим название нескольких товаров через пробел «Хлеб Очки»

4. Views выдаёт на выходе список всех предложений для этих товаров:
Хлеб - 100 руб
Хлеб - 200 руб
Очки - 15 руб
Очки - 60 руб

ВОПРОС:

Как сделать чтобы views выводил по каждому товару одно предложение с наименьшей ценой?

Хлеб - 100 руб
Очки - 15 руб
  • Вопрос задан
  • 2293 просмотра
Решения вопроса 1
AlexFreem
@AlexFreem
addicted
Я заранее предупреждаю что отвечаю не поставленный вопрос. Решение чисто кодом а не для Views. Но возможно кому то пригодится.

$searchString = "Хлеб Очки";
$searchArrray = explode(" ",$searchString);
$searchNids = array();
foreach($searchArray => $itemTitle) {
  $query = new EntityFieldQuery();
  $query->entityCondition('entity_type','node')
    ->entityCondition('bundle','YOUR_NODE_TYPE')
    ->propertyCondition('title', $itemTitle ,'LIKE')
    ->fieldOrderBy('field_PRICE','value','ASC')
    ->range(0,1);
  $result = $query->execute();

  if(!empty($result['node'])){
    $searchNids[] = array_keys($result['node']);
  }
})


В конечно итоге в массиве searchNids буду храниться ID нужных вам нод. С минимальной ценой и в единственном числе. Только их еще загружать придется через node_load_multiple();

Как то так. Если не прав - прошу поправить.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы