diff --git a/advanced_search.module b/advanced_search.module
index ed42223..d398f6c 100644
--- a/advanced_search.module
+++ b/advanced_search.module
@@ -40,7 +40,8 @@ function advanced_search_theme() {
function advanced_search_library_info_alter(&$libraries, $extension) {
if ($extension == 'facets') {
// Override facets module javascript with customizations.
- $path = '/' . drupal_get_path('module', 'advanced_search') . '/js/facets';
+ // https://www.drupal.org/node/2940438
+ $path = '/' . \Drupal::service('extension.list.module')->getPath('advanced_search') . '/js/facets';
$libraries['soft-limit']['js'] = [
"$path/soft-limit.js" => [],
];
@@ -80,8 +81,8 @@ function advanced_search_form_block_form_alter(&$form, FormStateInterface $form_
$condition_id = 'node_has_term';
/** @var \Drupal\Core\Condition\ConditionInterface $condition */
- if (array_key_exists($condition_id,$visibility)) {
- $condition = $manager->createInstance($condition_id, isset($visibility[$condition_id]) ? $visibility[$condition_id] : []);
+ if (array_key_exists($condition_id, $visibility)) {
+ $condition = $manager->createInstance($condition_id, $visibility[$condition_id] ?? []);
$form_state->set(['conditions', $condition_id], $condition);
$condition_form = $condition->buildConfigurationForm([], $form_state);
$condition_form['#type'] = 'details';
@@ -119,7 +120,7 @@ function advanced_search_preprocess_views_view(&$variables) {
if (in_array([$view->id(), $view->current_display], $views)) {
// Toggle between 'list' and 'grid' display depending on url parameter.
$config = \Drupal::config(SettingsForm::CONFIG_NAME);
-
+
$format = \Drupal::request()->query->get('display') ?? $config->get(SettingsForm::DISPLAY_DEFAULT);
$variables['attributes']['class'][] = "view-{$format}";
$view->element['#attached']['library'][] = 'advanced_search/advanced.search.pager';
diff --git a/css/advanced_search.form.css b/css/advanced_search.form.css
index 890f2ef..b9bc5ef 100644
--- a/css/advanced_search.form.css
+++ b/css/advanced_search.form.css
@@ -41,5 +41,5 @@ input.islandora-advanced-search-form__search {
}
[id^="edit-terms"] {
- display:initial !important;
+ display: initial !important;
}
diff --git a/css/advanced_search.pager.css b/css/advanced_search.pager.css
index 7491281..7ef0c26 100644
--- a/css/advanced_search.pager.css
+++ b/css/advanced_search.pager.css
@@ -116,13 +116,13 @@
}
/* generalizing */
-.advanced_search_result_pager .pager__group .pager {
+.advanced_search_result_pager .pager__group .pager {
display: none;
}
.advanced_search_result_pager .pager__group > * {
margin: 0.47214rem 2rem 0.47214rem 0;
- display:flex;
+ display: flex;
}
.advanced_search_result_pager .pager__group > *:last-child {
@@ -139,21 +139,19 @@
padding-right: 0 !important;
}
-.advanced_search_result_pager .pager__group nav {
+.advanced_search_result_pager .pager__group nav {
display: none;
}
-.view-grid > .view-content{
+.view-grid > .view-content {
display: grid;
grid-template-columns: repeat(3, 1fr);
/*margin: 0.47214rem 0 0.47214rem 2.61803rem;*/
}
@media only screen and (max-width: 600px) {
- .view-grid > .view-content{
+ .view-grid > .view-content {
display: grid;
grid-template-columns: repeat(1, 1fr);
}
}
-
-
diff --git a/src/AdvancedSearchQuery.php b/src/AdvancedSearchQuery.php
index 20dd73e..4d6c494 100644
--- a/src/AdvancedSearchQuery.php
+++ b/src/AdvancedSearchQuery.php
@@ -150,78 +150,81 @@ class AdvancedSearchQuery {
$language_ids = $search_api_query->getLanguages();
$field_mapping = $backend->getSolrFieldNamesKeyedByLanguage($language_ids, $index);
- // disable for Lucene and wildcard
- //$q[] = "{!boost b=boost_document}";
-
- // create a flag for active/inactive dismax
+ // Disable for Lucene and wildcard
+ // $q[] = "{!boost b=boost_document}";
+ // Create a flag for active/inactive dismax.
$config = \Drupal::config(SettingsForm::CONFIG_NAME);
$isDismax = $config->get(SettingsForm::EDISMAX_SEARCH_FLAG);
- if (!isset($isDismax))
- $isDismax = true;
- $isSearchAllFields = false;
+ if (!isset($isDismax)) {
+ $isDismax = TRUE;
+ }
+ $isSearchAllFields = FALSE;
$fields_list = [];
if (!$isDismax) {
// To support negative queries we must first bring in all documents.
$q[] = $this->negativeQuery($terms) ? "*:*" : "";
}
-
+
$term = array_shift($terms);
$q[] = $term->toSolrQuery($field_mapping);
- // new
+ // New.
$fields_list[] = $term->toSolrFields($field_mapping);
-
- // set edismax is enabled if the field set to "all"
+
+ // Set edismax is enabled if the field set to "all".
if ($term->getField() === "all") {
- $isSearchAllFields = true;
+ $isSearchAllFields = TRUE;
}
-
- // for multiple conditions
+
+ // For multiple conditions.
foreach ($terms as $term) {
$q[] = $term->getConjunction();
$q[] = $term->toSolrQuery($field_mapping);
- // new
+ // New.
$fields_list[] = $term->toSolrFields($field_mapping);
- // set dismax is enabled if the field set to "all"
+ // Set dismax is enabled if the field set to "all".
if ($term->getField() === "all") {
- $isSearchAllFields = true;
-
+ $isSearchAllFields = TRUE;
+
}
-
+
}
$q = implode(' ', $q);
-
- // Limit extra processing if Luncene Search is enable
+ // Limit extra processing if Luncene Search is enable.
if ($isDismax) {
- if ((strpos($q, "*") !== false || strpos($q, "?") !== false)) {
- // if the query string contain '*', '?', OR is a single world, enable wildcard
+ if ((strpos($q, "*") !== FALSE || strpos($q, "?") !== FALSE)) {
+ // If the query string contain '*','?',a single world,enable wildcard.
$tmp = str_replace('"', "", trim($q));
$query_fields = [];
-
+
if ($isSearchAllFields) {
foreach ($field_mapping as $key => $field) {
foreach ($field as $f => $item) {
- // bs_ are boolean fields, do not work well with text search
- if (substr($item, 0, 3) !== "bs_" && !in_array($item, ['score', 'random', 'boost_document'])
- && ((strpos( $item, "sm_" ) === 0) || (strpos( $item, "tm_" ) === 0) || (strpos($item, "sort_ss_") === 0) || (strpos($item, "ts_") === 0)
- || (strpos($item, "ss_") === 0)
- )){
- array_push($query_fields, '('.$item. ':'. $tmp .')');
+ // bs_ are boolean fields, do not work well with text search.
+ if (substr($item, 0, 3) !== "bs_"
+ && !in_array($item, ['score', 'random', 'boost_document'])
+ && ((strpos($item, "sm_") === 0)
+ || (strpos($item, "tm_") === 0)
+ || (strpos($item, "sort_ss_") === 0)
+ || (strpos($item, "ts_") === 0)
+ || (strpos($item, "ss_") === 0)
+ )) {
+ array_push($query_fields, '(' . $item . ':' . $tmp . ')');
}
}
}
}
else {
- foreach ($fields_list as $f) {
+ foreach ($fields_list as $f) {
$parts = explode(" ", $f);
- foreach ($parts as $p) {
- array_push($query_fields, '(' . $p . ':' . $tmp .')');
+ foreach ($parts as $p) {
+ array_push($query_fields, '(' . $p . ':' . $tmp . ')');
}
}
}
@@ -229,7 +232,7 @@ class AdvancedSearchQuery {
}
else {
- // enable dismax search query option
+ // Enable dismax search query option.
/** @var Solarium\QueryType\Select\Query\Component\DisMax $dismax */
$dismax = $solarium_query->getEDisMax();
$dismax->setQueryParser('edismax');
@@ -238,7 +241,7 @@ class AdvancedSearchQuery {
if ($isSearchAllFields) {
foreach ($field_mapping as $key => $field) {
foreach ($field as $f => $item) {
- // bs_ are boolean fields, do not work well with text search
+ // bs_ are boolean fields, do not work well with text search.
if (substr($item, 0, 3) !== "bs_") {
array_push($query_fields, $item);
}
@@ -247,7 +250,7 @@ class AdvancedSearchQuery {
}
else {
$query_fields = $fields_list;
-
+
}
$query_fields = implode(" ", array_unique($query_fields));
$dismax->setQueryFields($query_fields);
@@ -263,9 +266,9 @@ class AdvancedSearchQuery {
if (empty($highlighted_fields)) {
$highlighted_fields = ['*'];
}
-
+
$this->setHighlighting($solarium_query, $search_api_query, $highlighted_fields);
-
+
// The Search API Highlight processor checks if the 'keys' field of
// the Search API Query is non-empty before creating an excerpt.
// Since we are getting the highlighting result from Solr instead
@@ -273,7 +276,7 @@ class AdvancedSearchQuery {
// make this field non-empty.
$search_api_query->keys("advanced search");
}
-
+
$solarium_query->setQuery($q);
}
}
@@ -371,14 +374,14 @@ class AdvancedSearchQuery {
/**
* Sets the highlighting parameters.
*
- * @param \Solarium\QueryType\Select\Query\Query $solarium_query
+ * @param \Solarium\Core\Query\QueryInterface $solarium_query
* The Solarium select query object.
- * @param \Drupal\search_api\Query\QueryInterface $query
+ * @param \Drupal\search_api\Query\QueryInterface $search_api_query
* The query object.
* @param array $highlighted_fields
* (optional) The solr fields to be highlighted.
*/
- protected function setHighlighting(SolariumQueryInterface $solarium_query, DrupalQueryInterface $search_api_query, array $highlighted_fields = []) {
+ protected function setHighlighting(SolariumQueryInterface $solarium_query, DrupalQueryInterface $search_api_query, array $highlighted_fields = []) {
$index = $search_api_query->getIndex();
$settings = SearchAPISolrUtility::getIndexSolrSettings($index);
$highlighter = $settings['highlighter'];
@@ -424,4 +427,5 @@ class AdvancedSearchQuery {
$hl->addField($highlighted_field);
}
}
+
}
diff --git a/src/AdvancedSearchQueryTerm.php b/src/AdvancedSearchQueryTerm.php
index eee9e41..17bb2c0 100644
--- a/src/AdvancedSearchQueryTerm.php
+++ b/src/AdvancedSearchQueryTerm.php
@@ -4,6 +4,7 @@ namespace Drupal\advanced_search;
use Drupal\advanced_search\Form\AdvancedSearchForm;
use Drupal\advanced_search\Form\SettingsForm;
+
/**
* Defines a single search term.
*
@@ -271,7 +272,7 @@ class AdvancedSearchQueryTerm {
return $this->conjunction;
}
- /**
+ /**
* Using the provided field mapping create a Solr Query string.
*
* @param array $solr_field_mapping
@@ -287,22 +288,22 @@ class AdvancedSearchQueryTerm {
$config = \Drupal::config(SettingsForm::CONFIG_NAME);
$isDismax = $config->get(SettingsForm::EDISMAX_SEARCH_FLAG);
- if (!isset($isDismax)){
- $isDismax = true;
+ if (!isset($isDismax)) {
+ $isDismax = TRUE;
}
if ($isDismax || $this->field === "all") {
- // Case 1: if keyword contains one word or a phrase
- if(strpos(trim($value), ' ') !== false) {
- // add Or for the search case "scarborough bulletin" show no results
+ // Case 1: if keyword contains one word or a phrase.
+ if (strpos(trim($value), ' ') !== FALSE) {
+ // Add Or for the search case "scarborough bulletin" show no results.
$isNot = $this->getInclude() ? "" : "-";
if (substr_count($value, '\"') == 2) {
$value = str_replace('\"', "", trim($value));
return $isNot . $value;
}
else {
- return $isNot . "(" .$value . " OR " . str_replace('"', "", trim($value)) . ")";
+ return $isNot . "(" . $value . " OR " . str_replace('"', "", trim($value)) . ")";
}
}
if (!$this->getInclude()) {
@@ -310,45 +311,44 @@ class AdvancedSearchQueryTerm {
}
else {
// Case 2: keywords is one word
- // if there is quotation (with backslash) surrounded,
- if (strpos(trim($value), '\"' ) !== false) {
- $value = str_replace('\"', "", trim($value));
+ // if there is quotation (with backslash) surrounded,.
+ if (strpos(trim($value), '\"') !== FALSE) {
+ $value = str_replace('\"', "", trim($value));
}
- else {
- // if there is quotation (without backslash) surrounded
- $value = str_replace('"', "", trim($value));
+ else {
+ // If there is quotation (without backslash) surrounded.
+ $value = str_replace('"', "", trim($value));
}
}
return $value;
}
else {
- $isTitleSearch = false;
+ $isTitleSearch = FALSE;
foreach ($solr_field_mapping[$this->field] as $field) {
- // if field fulltext title is selected
- if (strpos($field, "fulltext_title") !== false) {
- $isTitleSearch = true;
- if (strpos(trim($value), " AND " ) !== false) {
- //When you type 'Orientation AND games' into the title search, you get one result.
- // When you do the same search but add a search box, you get a lot more results.
- // (Recreation: Add a search box, set both search criteria to 'Title' and keep the operator to 'and'.
- // Type 'orientation' in one box and 'games' in the second box and click seach.)
- $keyword = str_replace('"', '', $value);
+ // If field fulltext title is selected.
+ if (strpos($field, "fulltext_title") !== FALSE) {
+ $isTitleSearch = TRUE;
+ if (strpos(trim($value), " AND ") !== FALSE) {
+ // Handle keyword with 'Orientation AND games'.
+ $keyword = str_replace('"', '', $value);
$keys = explode(" AND ", $keyword);
$str = "(";
$i = 0;
foreach ($keys as $key) {
- if ($i != count($keys)-1)
- $str .= $field . ':"' .$key . '" AND ';
- else
- $str .= $field . ':"' .$key . '")';
- $i++;
+ if ($i != count($keys) - 1) {
+ $str .= $field . ':"' . $key . '" AND ';
+ }
+ else {
+ $str .= $field . ':"' . $key . '")';
+ }
+ $i++;
}
$terms[] = $str;
}
else {
if ($isTitleSearch) {
- $terms[] = 'tm_lowercase_title:'. $value;
+ $terms[] = 'tm_lowercase_title:' . $value;
}
else {
$terms[] = "$field:$value";
@@ -366,8 +366,7 @@ class AdvancedSearchQueryTerm {
return $this->include ? "($terms)" : "-($terms)";
}
-
- /**
+ /**
* Using the provided field mapping create a Solr Fields string.
*
* @param array $solr_field_mapping
@@ -381,7 +380,7 @@ class AdvancedSearchQueryTerm {
$query_helper = \Drupal::service('solarium.query_helper');
if ($this->field !== "all") {
- foreach ($solr_field_mapping[$this->field] as $field) {
+ foreach ($solr_field_mapping[$this->field] as $field) {
$terms[] = "$field";
}
}
@@ -390,11 +389,10 @@ class AdvancedSearchQueryTerm {
}
/**
- * Get Field search
+ * Get Field search.
*/
public function getField() {
return $this->field;
}
-
}
diff --git a/src/Controller/AjaxBlocksController.php b/src/Controller/AjaxBlocksController.php
index c5e3fb8..74d1652 100644
--- a/src/Controller/AjaxBlocksController.php
+++ b/src/Controller/AjaxBlocksController.php
@@ -84,7 +84,7 @@ class AjaxBlocksController extends ControllerBase {
* @param \Symfony\Component\DependencyInjection\ContainerInterface $container
* The drupal container.
*/
- public function __construct(RendererInterface $renderer, CurrentPathStack $currentPath, RouterInterface $router, PathProcessorManager $pathProcessor, CurrentRouteMatch $currentRouteMatch, ContainerInterface $container) {
+ final public function __construct(RendererInterface $renderer, CurrentPathStack $currentPath, RouterInterface $router, PathProcessorManager $pathProcessor, CurrentRouteMatch $currentRouteMatch, ContainerInterface $container) {
$this->storage = $this->entityTypeManager()->getStorage('block');
$this->renderer = $renderer;
$this->currentPath = $currentPath;
diff --git a/src/Form/AdvancedSearchForm.php b/src/Form/AdvancedSearchForm.php
index 372c2c0..1dc20c0 100644
--- a/src/Form/AdvancedSearchForm.php
+++ b/src/Form/AdvancedSearchForm.php
@@ -61,7 +61,7 @@ class AdvancedSearchForm extends FormBase {
/**
* Class constructor.
*/
- public function __construct(Request $request, RouteMatchInterface $current_route_match) {
+ final public function __construct(Request $request, RouteMatchInterface $current_route_match) {
$this->request = $request;
$this->currentRouteMatch = $current_route_match;
}
@@ -103,21 +103,21 @@ class AdvancedSearchForm extends FormBase {
return self::getConfig(SettingsForm::SEARCH_REMOVE_OPERATOR, self::DEFAULT_REMOVE_OP);
}
- /**
- * Get if Edismax Search checkbox is enabled or disable
- *
- * @return boolean
+ /**
+ * Get if Search All Fields checkbox is enabled or disable.
*
+ * @return bool
+ * the enable or disable for Search All Fields checkbox
*/
public static function getSearchAllFields() {
return self::getConfig(SettingsForm::SEARCH_ALL_FIELDS_FLAG, 0);
}
/**
- * Get if Edismax Search checkbox is enabled or disable
- *
- * @return boolean
+ * Get if Edismax Search checkbox is enabled or disable.
*
+ * @return bool
+ * the enable or disable for Edismax Search checkbox
*/
public static function getEdismaxSearch() {
return self::getConfig(SettingsForm::EDISMAX_SEARCH_FLAG, 0);
@@ -185,7 +185,7 @@ class AdvancedSearchForm extends FormBase {
*/
protected function processInput(FormStateInterface $form_state, array $term_default_values) {
$input = $form_state->getUserInput();
- $recursive = isset($input['recursive']) ? $input['recursive'] : NULL;
+ $recursive = $input['recursive'] ?? NULL;
$term_values = isset($input['terms']) && is_array($input['terms']) ? $input['terms'] : [];
// Form was not submitted see if we can rebuild from query parameters.
$advanced_search_query = new AdvancedSearchQuery();
@@ -273,9 +273,9 @@ class AdvancedSearchForm extends FormBase {
],
];
- $options = (self::getEdismaxSearch() && self::getSearchAllFields()) ? ["all" => $this->t(self::getEdismaxSearchLabel())] + $this->fieldOptions($fields) : $this->fieldOptions($fields);
+ $options = (self::getEdismaxSearch() && self::getSearchAllFields()) ? ["all" => $this->t("@label", ["@label" => self::getEdismaxSearchLabel()])] + $this->fieldOptions($fields) : $this->fieldOptions($fields);
$term_default_values = $this->defaultTermValues($options);
- list($recursive, $term_values) = $this->processInput($form_state, $term_default_values);
+ [$recursive, $term_values] = $this->processInput($form_state, $term_default_values);
$i = 0;
$term_elements = [];
$total_terms = count($term_values);
@@ -284,20 +284,20 @@ class AdvancedSearchForm extends FormBase {
// Either specified by the user in the request or use the default.
$first = $i == 0;
$term_value = !empty($term_values) ? array_shift($term_values) : $term_default_values;
- $conjunction = isset($term_value[self::CONJUNCTION_FORM_FIELD]) ? $term_value[self::CONJUNCTION_FORM_FIELD] : $term_default_values[self::CONJUNCTION_FORM_FIELD];
+ $conjunction = $term_value[self::CONJUNCTION_FORM_FIELD] ?? $term_default_values[self::CONJUNCTION_FORM_FIELD];
$term_elements[] = [
// Only show on terms after the first.
self::CONJUNCTION_FORM_FIELD => $first ? NULL : [
'#type' => 'select',
'#attributes' => [
- 'aria-label' => $this->t("Select search condition")
+ 'aria-label' => $this->t("Select search condition"),
],
'#options' => [
self::AND_OP => $this->t('and'),
self::OR_OP => $this->t('or'),
],
'#default_value' => $conjunction,
- '#theme_wrappers' => []
+ '#theme_wrappers' => [],
],
self::SEARCH_FORM_FIELD => [
'#type' => 'select',
@@ -306,7 +306,7 @@ class AdvancedSearchForm extends FormBase {
],
'#options' => $options,
'#default_value' => $term_value[self::SEARCH_FORM_FIELD],
- '#theme_wrappers' => []
+ '#theme_wrappers' => [],
],
self::INCLUDE_FORM_FIELD => [
'#type' => 'select',
@@ -325,7 +325,7 @@ class AdvancedSearchForm extends FormBase {
':input[name="terms[' . $i . '][' . self::CONJUNCTION_FORM_FIELD . ']"]' => ['value' => self::AND_OP],
],
],
- '#theme_wrappers' => []
+ '#theme_wrappers' => [],
],
// Just markup to show when 'include' is not alterable due to the
// selected 'conjunction'. Hide for the first term.
@@ -340,15 +340,15 @@ class AdvancedSearchForm extends FormBase {
/*'content' => [
'#markup' => $this->t('is'),
],*/
- '#theme_wrappers' => []
+ '#theme_wrappers' => [],
],
self::VALUE_FORM_FIELD => [
'#type' => 'textfield',
'#attributes' => [
- 'aria-label' => $this->t("Enter a search term")
+ 'aria-label' => $this->t("Enter a search term"),
],
'#default_value' => $term_value[self::VALUE_FORM_FIELD],
- '#theme_wrappers' => []
+ '#theme_wrappers' => [],
],
'actions' => [
'#type' => 'container',
@@ -374,7 +374,7 @@ class AdvancedSearchForm extends FormBase {
'#name' => 'remove-term-' . $i,
'#term_index' => $i,
'#attributes' => [
- 'class' => [$block_class_prefix . '__remove', 'fa' ],
+ 'class' => [$block_class_prefix . '__remove', 'fa'],
'aria-label' => $this->t("Remove"),
],
'#ajax' => [
@@ -440,7 +440,7 @@ class AdvancedSearchForm extends FormBase {
$terms[] = AdvancedSearchQueryTerm::fromUserInput($term);
}
$terms = array_filter($terms);
- $recurse = filter_var(isset($values['recursive']) ? $values['recursive'] : FALSE, FILTER_VALIDATE_BOOLEAN);
+ $recurse = filter_var($values['recursive'] ?? FALSE, FILTER_VALIDATE_BOOLEAN);
$route = $this->getRouteName($form_state);
$advanced_search_query = new AdvancedSearchQuery();
return $advanced_search_query->toUrl($this->request, $terms, $recurse, $route);
diff --git a/src/Form/SearchForm.php b/src/Form/SearchForm.php
index c2654d7..c038ffa 100644
--- a/src/Form/SearchForm.php
+++ b/src/Form/SearchForm.php
@@ -2,95 +2,108 @@
namespace Drupal\advanced_search\Form;
-
+use Drupal\block\Entity\Block;
use Drupal\Core\Form\FormBase;
use Drupal\Core\Form\FormStateInterface;
-use Symfony\Component\HttpFoundation\RedirectResponse;
-use \Drupal\Core\Url;
+use Drupal\Core\Url;
-class SearchForm extends FormBase
-{
- protected $block_id;
+/**
+ * Form for building and Simple Search.
+ */
+class SearchForm extends FormBase {
/**
- * @param $block_id
+ * The Block ID.
+ *
+ * @var string
+ */
+ protected $blockId;
+
+ /**
+ * The constructor.
+ *
+ * @param string $block_id
+ * Passing the block_id.
*/
public function __construct($block_id) {
- $this->block_id = $block_id;
+ $this->blockId = $block_id;
}
/**
+ * Get Block Id.
+ *
* @return mixed
+ * Return the Block ID
*/
public function getBlockId() {
- return $this->block_id;
+ return $this->blockId;
}
/**
- * @param mixed $block_id
+ * Set Block ID.
+ *
+ * @param mixed $blockId
+ * Set the block ID.
*/
- public function setBlockId($block_id): void {
- $this->block_id = $block_id;
+ public function setBlockId($blockId): void {
+ $this->blockId = $blockId;
}
/**
* {@inheritdoc}
*/
- public function getFormId()
- {
+ public function getFormId() {
return 'search_form';
}
/**
* {@inheritdoc}
*/
- public function buildForm(array $form, FormStateInterface $form_state)
- {
+ public function buildForm(array $form, FormStateInterface $form_state) {
$config = \Drupal::config(SettingsForm::CONFIG_NAME);
- if (!$config->get(SettingsForm::SEARCH_ALL_FIELDS_FLAG)) {
+ if (!$config->get(SettingsForm::SEARCH_ALL_FIELDS_FLAG)) {
$form['search-attributes'][SettingsForm::SEARCH_ALL_FIELDS_FLAG] = [
'#markup' => $this
->t('This block is required to enable searching all fields for the Advanced Search.
- To proceed, please enable the Search All fields in
+ To proceed, please enable the Search All fields in
Advanced Seach Configuration.'),
];
}
else {
- $block = \Drupal\block\Entity\Block::load($this->block_id);
+ $block = Block::load($this->blockId);
if ($block) {
$settings = $block->get('settings');
$view_machine_name = $settings['search_view_machine_name'];
}
- $form['search-textfield'] = array(
+ $form['search-textfield'] = [
'#type' => 'textfield',
'#title' => (!empty($settings['search_textfield_label']) ? $settings['search_textfield_label'] : ''),
'#attributes' => [
- 'placeholder' => isset($settings['search_placeholder']) ? $this->t($settings['search_placeholder']) : $this->t("Search collections"),
- 'aria-label' => (isset($settings['search_textfield_label']) ? $this->t($settings['search_textfield_label']) : $this->t('Enter Keyword'))
+ 'placeholder' => isset($settings['search_placeholder']) ? $this->t("@placeholder", ["@placeholder" => $settings['search_placeholder']]) : $this->t("Search collections"),
+ 'aria-label' => (isset($settings['search_textfield_label']) ? $this->t("@label", ["@label" => $settings['search_textfield_label']]) : $this->t('Enter Keyword')),
],
- '#theme_wrappers' => []
- );
+ '#theme_wrappers' => [],
+ ];
$form['actions']['#type'] = 'actions';
- $form['actions']['submit'] = array(
+ $form['actions']['submit'] = [
'#type' => 'submit',
'#value' => (!empty($settings['search_submit_label']) ? $settings['search_submit_label'] : 'Search'),
'#button_type' => 'primary',
- );
+ ];
}
-
+
return $form;
}
/**
* {@inheritdoc}
*/
- public function submitForm(array &$form, FormStateInterface $form_state)
- {
- $block = \Drupal\block\Entity\Block::load($this->block_id);
+ public function submitForm(array &$form, FormStateInterface $form_state) {
+ $block = Block::load($this->blockId);
if ($block) {
$settings = $block->get('settings');
$view_machine_name = $settings['search_view_machine_name'];
@@ -103,4 +116,5 @@ class SearchForm extends FormBase
]);
$form_state->setRedirectUrl($url);
}
+
}
diff --git a/src/Form/SettingsForm.php b/src/Form/SettingsForm.php
index 5f511df..be5c575 100644
--- a/src/Form/SettingsForm.php
+++ b/src/Form/SettingsForm.php
@@ -28,14 +28,14 @@ class SettingsForm extends ConfigFormBase {
const DISPLAY_LIST_FLAG = 'list_on_off';
const DISPLAY_GRID_FLAG = 'grid_on_off';
const DISPLAY_DEFAULT = 'default-display-mode';
-
+
/**
* Constructs a \Drupal\system\ConfigFormBase object.
*
* @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
* The factory for configuration objects.
*/
- public function __construct(ConfigFactoryInterface $config_factory) {
+ final public function __construct(ConfigFactoryInterface $config_factory) {
$this->setConfigFactory($config_factory);
}
@@ -91,7 +91,7 @@ class SettingsForm extends ConfigFormBase {
'),
- '#default_value' => isset($isEDismax) ? $isEDismax : 1,
+ '#default_value' => $isEDismax ?? 1,
];
$form['eDisMax']['textfields_container'] = [
@@ -116,15 +116,14 @@ class SettingsForm extends ConfigFormBase {
'#default_value' => self::getConfig(self::EDISMAX_SEARCH_LABEL, "Keyword"),
];
-
- $form['display-mode'] = [
+ $form['display-mode'] = [
'#type' => 'fieldset',
'#title' => $this->t("Pager Block"),
];
$form['display-mode']['pager-block-description'] = [
'#markup' => $this->t("Pager blocks are available in the Blocks interface for each Search API view. The following settings apply for all Pager blocks."),
];
-
+
$form['display-mode'][self::DISPLAY_LIST_FLAG] = [
'#type' => 'checkbox',
'#title' => $this
@@ -145,7 +144,7 @@ class SettingsForm extends ConfigFormBase {
->t('Default view mode:'),
'#options' => [
'list' => 'List',
- 'grid' => 'Grid'
+ 'grid' => 'Grid',
],
'#default_value' => self::getConfig(self::DISPLAY_DEFAULT, 'grid'),
];
@@ -191,7 +190,6 @@ class SettingsForm extends ConfigFormBase {
],
],
];
-
return parent::buildForm($form, $form_state);
}
diff --git a/src/Plugin/Block/AdvancedSearchBlock.php b/src/Plugin/Block/AdvancedSearchBlock.php
index 22faf05..ce41963 100644
--- a/src/Plugin/Block/AdvancedSearchBlock.php
+++ b/src/Plugin/Block/AdvancedSearchBlock.php
@@ -88,10 +88,10 @@ class AdvancedSearchBlock extends BlockBase implements ContainerFactoryPluginInt
* @param \Symfony\Component\HttpFoundation\Request $request
* A request object for the current request.
*/
- public function __construct(array $configuration, $plugin_id, $plugin_definition, DisplayPluginManager $display_plugin_manager, FormBuilderInterface $form_builder, Request $request) {
+ final public function __construct(array $configuration, $plugin_id, $plugin_definition, DisplayPluginManager $display_plugin_manager, FormBuilderInterface $form_builder, Request $request) {
parent::__construct($configuration, $plugin_id, $plugin_definition);
$this->displayPluginManager = $display_plugin_manager;
- list($view_id, $display_id) = preg_split('/__/', $this->getDerivativeId(), 2);
+ [$view_id, $display_id] = preg_split('/__/', $this->getDerivativeId(), 2);
$this->view = View::Load($view_id);
$this->display = $this->view->getDisplay($display_id);
$this->formBuilder = $form_builder;
diff --git a/src/Plugin/Block/SearchApiDisplayBlockDeriver.php b/src/Plugin/Block/SearchApiDisplayBlockDeriver.php
index 9b6011f..49d7cba 100644
--- a/src/Plugin/Block/SearchApiDisplayBlockDeriver.php
+++ b/src/Plugin/Block/SearchApiDisplayBlockDeriver.php
@@ -40,6 +40,11 @@ abstract class SearchApiDisplayBlockDeriver implements ContainerDeriverInterface
*/
abstract protected function label();
+ /**
+ * The constructor.
+ */
+ final public function __construct(ContainerInterface $container, $base_plugin_id) {}
+
/**
* {@inheritdoc}
*/
@@ -55,7 +60,7 @@ abstract class SearchApiDisplayBlockDeriver implements ContainerDeriverInterface
*/
public function getDerivativeDefinition($derivative_id, $base_plugin_definition) {
$derivatives = $this->getDerivativeDefinitions($base_plugin_definition);
- return isset($derivatives[$derivative_id]) ? $derivatives[$derivative_id] : NULL;
+ return $derivatives[$derivative_id] ?? NULL;
}
/**
diff --git a/src/Plugin/Block/SearchBlock.php b/src/Plugin/Block/SearchBlock.php
index 456eb21..3c49edd 100644
--- a/src/Plugin/Block/SearchBlock.php
+++ b/src/Plugin/Block/SearchBlock.php
@@ -2,6 +2,7 @@
namespace Drupal\advanced_search\Plugin\Block;
+use Drupal\advanced_search\Form\SearchForm;
use Drupal\Core\Block\BlockBase;
use Drupal\Core\Form\FormStateInterface;
use Drupal\advanced_search\Form\SettingsForm;
@@ -20,8 +21,7 @@ class SearchBlock extends BlockBase {
* {@inheritdoc}
*/
public function defaultConfiguration() {
- return [
- ] + parent::defaultConfiguration();
+ return [] + parent::defaultConfiguration();
}
/**
@@ -34,11 +34,11 @@ class SearchBlock extends BlockBase {
'#title' => $this->t('Configure Search Block'),
];
- if (!$config->get(SettingsForm::SEARCH_ALL_FIELDS_FLAG)) {
+ if (!$config->get(SettingsForm::SEARCH_ALL_FIELDS_FLAG)) {
$form['search-attributes'][SettingsForm::SEARCH_ALL_FIELDS_FLAG] = [
'#markup' => $this
->t('This block is required to enable searching all fields for the Advanced Search.
- To proceed, please enable "Enable searching all fields" in
+ To proceed, please enable "Enable searching all fields" in
Advanced Seach Configuration.'),
];
}
@@ -46,28 +46,28 @@ class SearchBlock extends BlockBase {
$views = \Drupal::EntityTypeManager()->getStorage('view')->loadMultiple();
$options = [];
foreach ($views as $view_name => $view) {
- $displays = $view->get("display");
- foreach ($displays as $display) {
- if ($display['display_plugin'] === "page") {
- $options["view.$view_name". "." . $display['id']] = "view.$view_name". "." . $display['id'];
- }
+ $displays = $view->get("display");
+ foreach ($displays as $display) {
+ if ($display['display_plugin'] === "page") {
+ $options["view.$view_name" . "." . $display['id']] = "view.$view_name" . "." . $display['id'];
}
+ }
}
$form['search-attributes']['view_machine_name'] = [
'#type' => 'select',
- '#title' => $this->t('Select Search Results Page\'s Machine Name:'),
+ '#title' => $this->t('Select the machine name of Search Results Page:'),
'#default_value' => $this->configuration['search_view_machine_name'],
- '#options' => $options
+ '#options' => $options,
];
$form['search-attributes']['search_textfield'] = [
'#type' => 'textfield',
- '#title' => $this->t('Search Keyword Textfield Label:'),
+ '#title' => $this->t('Search Keyword Text field label:'),
'#default_value' => $this->configuration['search_textfield_label'],
'#maxlength' => 255,
];
$form['search-attributes']['search_placeholder_textfield'] = [
'#type' => 'textfield',
- '#title' => $this->t('Search Keyword Textfield Placeholder:'),
+ '#title' => $this->t('Search Keyword text field placeholder:'),
'#default_value' => $this->configuration['search_placeholder'],
'#maxlength' => 255,
];
@@ -79,7 +79,7 @@ class SearchBlock extends BlockBase {
'#maxlength' => 255,
];
}
-
+
return $form;
}
@@ -100,7 +100,7 @@ class SearchBlock extends BlockBase {
public function build() {
$config = $this->getConfiguration();
$blockId = $config['block_id'];
- $searchForm = new \Drupal\advanced_search\Form\SearchForm($blockId);
+ $searchForm = new SearchForm($blockId);
return \Drupal::formBuilder()->getForm($searchForm);
}
diff --git a/src/Plugin/Block/SearchResultsPagerBlock.php b/src/Plugin/Block/SearchResultsPagerBlock.php
index 4402519..687822d 100644
--- a/src/Plugin/Block/SearchResultsPagerBlock.php
+++ b/src/Plugin/Block/SearchResultsPagerBlock.php
@@ -46,7 +46,7 @@ class SearchResultsPagerBlock extends BlockBase implements ContainerFactoryPlugi
* @param \Symfony\Component\HttpFoundation\Request $request
* A request object for the current request.
*/
- public function __construct(array $configuration, $plugin_id, $plugin_definition, Request $request) {
+ final public function __construct(array $configuration, $plugin_id, $plugin_definition, Request $request) {
parent::__construct($configuration, $plugin_id, $plugin_definition);
$this->request = clone $request;
}
@@ -68,7 +68,7 @@ class SearchResultsPagerBlock extends BlockBase implements ContainerFactoryPlugi
*/
public function build() {
$id = $this->getDerivativeId();
- list($view_id, $display_id) = $this->getViewAndDisplayIdentifiers();
+ [$view_id, $display_id] = $this->getViewAndDisplayIdentifiers();
$view = View::Load($view_id);
$view_executable = $view->getExecutable();
$view_executable->setDisplay($display_id);
@@ -121,7 +121,7 @@ class SearchResultsPagerBlock extends BlockBase implements ContainerFactoryPlugi
protected function buildResultsSummary(ViewExecutable $view_executable) {
$current_page = (int) $view_executable->getCurrentPage() + 1;
$per_page = (int) $view_executable->getItemsPerPage();
- $total = isset($view_executable->total_rows) ? $view_executable->total_rows : count($view_executable->result);
+ $total = $view_executable->total_rows ?? count($view_executable->result);
// If there is no result the "start" and "current_record_count" should be
// equal to 0. To have the same calculation logic, we use a "start offset"
// to handle all the cases.
@@ -186,8 +186,10 @@ class SearchResultsPagerBlock extends BlockBase implements ContainerFactoryPlugi
'#url' => $url,
'#title' => $items_per_page,
'#attributes' => [
- 'aria-label' => $this->t($items_per_page . " items per page"),
- 'class' => $active ? ['pager__link', 'pager__link--is-active', 'pager__itemsperpage'] : ['pager__link', 'pager__itemsperpage'],
+ 'aria-label' => $this->t("@item items per page", ["@item" => $items_per_page]),
+ 'class' => $active ?
+ ['pager__link', 'pager__link--is-active', 'pager__itemsperpage'] :
+ ['pager__link', 'pager__itemsperpage'],
],
'#wrapper_attributes' => [
'class' => $active ? ['pager__item', 'is-active'] : ['pager__item'],
@@ -216,18 +218,18 @@ class SearchResultsPagerBlock extends BlockBase implements ContainerFactoryPlugi
protected function buildDisplayLinks(array $query_parameters) {
$config = \Drupal::config(SettingsForm::CONFIG_NAME);
$display_options = [];
-
- if ($config->get(SettingsForm::DISPLAY_LIST_FLAG) == 1) {
+
+ if ($config->get(SettingsForm::DISPLAY_LIST_FLAG) == 1) {
$display_options['list'] = [
'icon' => 'fa-list',
'title' => $this->t('List'),
];
}
- if ($config->get(SettingsForm::DISPLAY_GRID_FLAG) ==1) {
+ if ($config->get(SettingsForm::DISPLAY_GRID_FLAG) == 1) {
$display_options['grid'] = [
'icon' => 'fa-th',
- 'title' => $this->t('Grid')
+ 'title' => $this->t('Grid'),
];
}
@@ -245,8 +247,10 @@ class SearchResultsPagerBlock extends BlockBase implements ContainerFactoryPlugi
'#url' => $url,
'#title' => Markup::create($text),
'#attributes' => [
- 'class' => $active ? ['pager__link', 'pager__link--is-active', 'pager__display'] : ['pager__link', 'pager__display'],
- 'aria-label' => $this->t("Display as " . Markup::create($text))
+ 'class' => $active ?
+ ['pager__link', 'pager__link--is-active', 'pager__display'] :
+ ['pager__link', 'pager__display'],
+ 'aria-label' => $this->t("Display as @link", ["@link" => Markup::create($text)]),
],
'#wrapper_attributes' => [
'class' => $active ? ['pager__item', 'is-active'] : ['pager__item'],
@@ -305,7 +309,7 @@ class SearchResultsPagerBlock extends BlockBase implements ContainerFactoryPlugi
'#title_display' => 'invisible',
'#options' => $options,
'#options_attributes' => $options_attributes,
- '#attributes' => ['autocomplete' => 'off', "aria-label"=>"Sort By"],
+ '#attributes' => ['autocomplete' => 'off', "aria-label" => "Sort By"],
'#wrapper_attributes' => ['class' => ['pager__sort', 'container']],
'#name' => 'order',
'#value' => $default_value,
diff --git a/src/Utilities.php b/src/Utilities.php
index 20dd181..9d59109 100644
--- a/src/Utilities.php
+++ b/src/Utilities.php
@@ -27,7 +27,7 @@ class Utilities {
foreach ($block_storage->loadByProperties(['theme' => $active_theme->getName()]) as $block) {
$plugin = $block->getPlugin();
if ($plugin instanceof SearchResultsPagerBlock) {
- list($view_id, $display_id) = $plugin->getViewAndDisplayIdentifiers();
+ [$view_id, $display_id] = $plugin->getViewAndDisplayIdentifiers();
$views[$block->id()] = [$view_id, $display_id];
}
}
@@ -52,7 +52,7 @@ class Utilities {
foreach ($block_storage->loadByProperties(['theme' => $active_theme->getName()]) as $block) {
$plugin = $block->getPlugin();
if ($plugin instanceof AdvancedSearchBlock) {
- list($view_id, $display_id) = $plugin->getViewAndDisplayIdentifiers();
+ [$view_id, $display_id] = $plugin->getViewAndDisplayIdentifiers();
$views[$block->id()] = [$view_id, $display_id];
}
}