diff --git a/advanced_search.module b/advanced_search.module index 7c55b92..d398f6c 100644 --- a/advanced_search.module +++ b/advanced_search.module @@ -81,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'; @@ -120,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..597936e 100644 --- a/src/AdvancedSearchQuery.php +++ b/src/AdvancedSearchQuery.php @@ -150,78 +150,77 @@ 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 '*', '?', OR is 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 + // 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, "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 .')'); + )) { + 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 +228,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 +237,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 +246,7 @@ class AdvancedSearchQuery { } else { $query_fields = $fields_list; - + } $query_fields = implode(" ", array_unique($query_fields)); $dismax->setQueryFields($query_fields); @@ -263,9 +262,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 +272,7 @@ class AdvancedSearchQuery { // make this field non-empty. $search_api_query->keys("advanced search"); } - + $solarium_query->setQuery($q); } } @@ -378,7 +377,7 @@ class AdvancedSearchQuery { * @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 +423,5 @@ class AdvancedSearchQuery { $hl->addField($highlighted_field); } } + } diff --git a/src/AdvancedSearchQueryTerm.php b/src/AdvancedSearchQueryTerm.php index eee9e41..2932172 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,47 @@ 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. + // 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); + $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 +369,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 +383,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 +392,10 @@ class AdvancedSearchQueryTerm { } /** - * Get Field search + * Get Field search. */ public function getField() { return $this->field; } - } diff --git a/src/Form/AdvancedSearchForm.php b/src/Form/AdvancedSearchForm.php index bba7448..2a621a8 100644 --- a/src/Form/AdvancedSearchForm.php +++ b/src/Form/AdvancedSearchForm.php @@ -103,21 +103,19 @@ 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 Edismax Search checkbox is enabled or disable. * + * @return bool */ 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 */ public static function getEdismaxSearch() { return self::getConfig(SettingsForm::EDISMAX_SEARCH_FLAG, 0); @@ -185,7 +183,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 +271,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(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 +282,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 +304,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 +323,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 +338,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 +372,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 +438,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..0e57e55 100644 --- a/src/Form/SearchForm.php +++ b/src/Form/SearchForm.php @@ -2,14 +2,15 @@ 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 -{ +/** + * + */ +class SearchForm extends FormBase { protected $block_id; /** @@ -36,19 +37,17 @@ class SearchForm extends FormBase /** * {@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. @@ -57,40 +56,39 @@ class SearchForm extends FormBase ]; } else { - $block = \Drupal\block\Entity\Block::load($this->block_id); + $block = Block::load($this->block_id); 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')) + 'aria-label' => (isset($settings['search_textfield_label']) ? $this->t($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->block_id); if ($block) { $settings = $block->get('settings'); $view_machine_name = $settings['search_view_machine_name']; @@ -103,4 +101,5 @@ class SearchForm extends FormBase ]); $form_state->setRedirectUrl($url); } + } diff --git a/src/Form/SettingsForm.php b/src/Form/SettingsForm.php index 5c6fef9..be5c575 100644 --- a/src/Form/SettingsForm.php +++ b/src/Form/SettingsForm.php @@ -28,7 +28,7 @@ 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. * @@ -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 34bc541..ce41963 100644 --- a/src/Plugin/Block/AdvancedSearchBlock.php +++ b/src/Plugin/Block/AdvancedSearchBlock.php @@ -91,7 +91,7 @@ class AdvancedSearchBlock extends BlockBase implements ContainerFactoryPluginInt 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 ca72b6b..6b66b1f 100644 --- a/src/Plugin/Block/SearchApiDisplayBlockDeriver.php +++ b/src/Plugin/Block/SearchApiDisplayBlockDeriver.php @@ -40,7 +40,10 @@ abstract class SearchApiDisplayBlockDeriver implements ContainerDeriverInterface */ abstract protected function label(); - final public function __construct (ContainerInterface $container, $base_plugin_id) {} + /** + * + */ + final public function __construct(ContainerInterface $container, $base_plugin_id) {} /** * {@inheritdoc} @@ -57,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..1cf0c13 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,7 +34,7 @@ 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. @@ -46,18 +46,18 @@ 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:'), '#default_value' => $this->configuration['search_view_machine_name'], - '#options' => $options + '#options' => $options, ]; $form['search-attributes']['search_textfield'] = [ '#type' => 'textfield', @@ -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 fdf199f..c360646 100644 --- a/src/Plugin/Block/SearchResultsPagerBlock.php +++ b/src/Plugin/Block/SearchResultsPagerBlock.php @@ -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. @@ -216,18 +216,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'), ]; } @@ -246,7 +246,7 @@ class SearchResultsPagerBlock extends BlockBase implements ContainerFactoryPlugi '#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)) + 'aria-label' => $this->t("Display as " . Markup::create($text)), ], '#wrapper_attributes' => [ 'class' => $active ? ['pager__item', 'is-active'] : ['pager__item'], @@ -305,7 +305,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]; } }