63 lines
2 KiB
PHP
63 lines
2 KiB
PHP
<?php
|
|
|
|
namespace Drupal\advanced_search;
|
|
|
|
use Drupal\advanced_search\Plugin\Block\AdvancedSearchBlock;
|
|
use Drupal\advanced_search\Plugin\Block\SearchResultsPagerBlock;
|
|
|
|
/**
|
|
* Helper functions.
|
|
*/
|
|
class Utilities {
|
|
|
|
/**
|
|
* Gets the list of views for which pager blocks have been created.
|
|
*
|
|
* @return array
|
|
* List of view and display ids which have that have been used to
|
|
* derive a SearchResultsPagerBlock.
|
|
*/
|
|
public static function getPagerViewDisplays() {
|
|
$views = &drupal_static(__FUNCTION__);
|
|
if (!isset($views)) {
|
|
$block_storage = \Drupal::entityTypeManager()->getStorage('block');
|
|
$active_theme = \Drupal::theme()->getActiveTheme();
|
|
$views = [];
|
|
/** @var \Drupal\block\Entity\Block $block */
|
|
foreach ($block_storage->loadByProperties(['theme' => $active_theme->getName()]) as $block) {
|
|
$plugin = $block->getPlugin();
|
|
if ($plugin instanceof SearchResultsPagerBlock) {
|
|
[$view_id, $display_id] = $plugin->getViewAndDisplayIdentifiers();
|
|
$views[$block->id()] = [$view_id, $display_id];
|
|
}
|
|
}
|
|
}
|
|
return $views;
|
|
}
|
|
|
|
/**
|
|
* Gets the list of views for which advanced search blocks have been created.
|
|
*
|
|
* @return array
|
|
* List of view and display ids which have that have been used to
|
|
* derive a SearchResultsPagerBlock.
|
|
*/
|
|
public static function getAdvancedSearchViewDisplays() {
|
|
$views = &drupal_static(__FUNCTION__);
|
|
if (!isset($views)) {
|
|
$block_storage = \Drupal::entityTypeManager()->getStorage('block');
|
|
$active_theme = \Drupal::theme()->getActiveTheme();
|
|
$views = [];
|
|
/** @var \Drupal\block\Entity\Block $block */
|
|
foreach ($block_storage->loadByProperties(['theme' => $active_theme->getName()]) as $block) {
|
|
$plugin = $block->getPlugin();
|
|
if ($plugin instanceof AdvancedSearchBlock) {
|
|
[$view_id, $display_id] = $plugin->getViewAndDisplayIdentifiers();
|
|
$views[$block->id()] = [$view_id, $display_id];
|
|
}
|
|
}
|
|
}
|
|
return $views;
|
|
}
|
|
|
|
}
|