Search API 8 - вывод результатов программного поиска

Главные вкладки

Аватар пользователя Bafur Bafur 16 февраля 2019 в 21:39

Здравствуйте!
Сделал поиск в своем модуле. Теперь нужно выводить результаты, добавлять раскрытые фильтры и пагинацию.
Пока что сделал так:

<?php
        
// это в mymodule.module в hook_preprocess_node
        
.....
    
/** @var \Drupal\search_api\Query\ResultSetInterface $search_result */
    
$search_result $search_query->execute();
    
$my_result = array();
    foreach (
$search_result->getResultItems() as $result_item) {
      
$my_result[] = array(
          
'link'        => $result_item->getField('link')->getValues()[0],
          
'title'       => $result_item->getField('title')->getValues()[0],
          
'description' => $result_item->getField('description')->getValues()[0],
      );
    }
    
$variables['my_result'] = $my_result;
?>

И в шаблоне:

      {% for key,value in my_result %}
        <div class="views-row">
          <div class="title"><a href="{{ value['link'] }}">{{ value['title'] }}</a></div>
          <div class="description">[ {{ value['description'] }} ]</div>
        </div>
      {% endfor %}  

Так правильно делать? Чувствую, сейчас начнутся проблемы с пагинацией, фильтрами и прочей обработкой результатов. Еще цитаты с подсветкой ключей не вывести, как я понял, в текущем варианте.