You are here

search_api_solr_devel.module in Search API Solr 8.3

Same filename and directory in other branches
  1. 4.x modules/search_api_solr_devel/search_api_solr_devel.module

File

modules/search_api_solr_devel/search_api_solr_devel.module
View source
<?php

/**
 * @file
 */
use Drupal\search_api\Query\QueryInterface;
use Drupal\search_api\Query\ResultSetInterface;
use Solarium\Core\Query\QueryInterface as SolariumQueryInterface;
use Solarium\Core\Query\Result\QueryType;

/**
 * Implements hook_entity_type_alter().
 */
function search_api_solr_devel_entity_type_alter(array &$entity_types) {

  /** @var $entity_types \Drupal\Core\Entity\EntityTypeInterface[] */
  foreach ($entity_types as $entity_type_id => $entity_type) {
    if ($entity_type
      ->hasViewBuilderClass() && $entity_type
      ->hasLinkTemplate('canonical')) {
      $entity_type
        ->setLinkTemplate('devel-solr', "/devel/{$entity_type_id}/{{$entity_type_id}}/solr");
    }
  }
}

/**
 * Implements hook_search_api_solr_query_alter().
 */
function search_api_solr_devel_search_api_solr_query_alter(SolariumQueryInterface $solarium_query, QueryInterface $query) {
  $solarium_query
    ->getDebug();
  $solarium_query
    ->addParam('echoParams', 'all');
  $solarium_query
    ->setOmitHeader(FALSE);
}

/**
 * Implements hook_search_api_solr_search_results_alter().
 */
function search_api_solr_devel_search_api_solr_search_results_alter(ResultSetInterface $result_set, QueryInterface $query, QueryType $result) {
  $result_data = $result
    ->getData();
  if (isset($result_data['debug'])) {

    /** @var \Drupal\devel\DevelDumperManagerInterface $dumper */
    $dumper = \Drupal::service('devel.dumper');
    $dumper
      ->message($result_data['debug'], 'Solr Debug Output');
  }
}