From 6d46d0d48ae9aeabc5b4b1fe6cc8ca3de21ca95c Mon Sep 17 00:00:00 2001 From: bach Date: Tue, 22 Feb 2022 15:25:58 +0100 Subject: [PATCH] fixed autocomplete obsolete custom code --- .../src/EntityAutocompleteMatcher.php | 34 +++++++++++++++---- .../custom/materio_id/materio_id.module | 3 +- 2 files changed, 29 insertions(+), 8 deletions(-) diff --git a/web/modules/custom/materio_commerce/src/EntityAutocompleteMatcher.php b/web/modules/custom/materio_commerce/src/EntityAutocompleteMatcher.php index b25630d..7dd1036 100644 --- a/web/modules/custom/materio_commerce/src/EntityAutocompleteMatcher.php +++ b/web/modules/custom/materio_commerce/src/EntityAutocompleteMatcher.php @@ -4,28 +4,48 @@ namespace Drupal\materio_commerce; use Drupal\Component\Utility\Html; use Drupal\Component\Utility\Tags; +use Drupal\Core\Entity\EntityReferenceSelection\SelectionPluginManagerInterface; +/** + * Matcher class to get autocompletion results for entity reference. + */ class EntityAutocompleteMatcher extends \Drupal\Core\Entity\EntityAutocompleteMatcher { + /** + * The entity reference selection handler plugin manager. + * + * @var \Drupal\Core\Entity\EntityReferenceSelection\SelectionPluginManagerInterface + */ + protected $selectionManager; + + /** + * Constructs an EntityAutocompleteMatcher object. + * + * @param \Drupal\Core\Entity\EntityReferenceSelection\SelectionPluginManagerInterface $selection_manager + * The entity reference selection handler plugin manager. + */ + public function __construct(SelectionPluginManagerInterface $selection_manager) { + $this->selectionManager = $selection_manager; + } + + /** * Gets matched labels based on a given search string. */ public function getMatches($target_type, $selection_handler, $selection_settings, $string = '') { - $matches = []; - $options = [ - 'target_type' => $target_type, - 'handler' => $selection_handler, - 'handler_settings' => $selection_settings, + $options = $selection_settings + [ + 'target_type' => $target_type, + 'handler' => $selection_handler, ]; - $handler = $this->selectionManager->getInstance($options); if (isset($string)) { // Get an array of matching entities. $match_operator = !empty($selection_settings['match_operator']) ? $selection_settings['match_operator'] : 'CONTAINS'; - $entity_labels = $handler->getReferenceableEntities($string, $match_operator, 10); + $match_limit = isset($selection_settings['match_limit']) ? (int) $selection_settings['match_limit'] : 10; + $entity_labels = $handler->getReferenceableEntities($string, $match_operator, $match_limit); // Loop through the entities and convert them into autocomplete output. foreach ($entity_labels as $values) { diff --git a/web/modules/custom/materio_id/materio_id.module b/web/modules/custom/materio_id/materio_id.module index 226c030..3cd12c4 100644 --- a/web/modules/custom/materio_id/materio_id.module +++ b/web/modules/custom/materio_id/materio_id.module @@ -30,7 +30,8 @@ function computed_field_field_index_compute($entity_type_manager, $entity, $fiel if(is_array($nids)){ $nid = array_pop($nids); if ($nid) { - $last = entity_load($entity->getEntityTypeId(), $nid); // array_pop($nids) + // $last = entity_load($entity->getEntityTypeId(), $nid); // array_pop($nids) + $last = \Drupal::entityTypeManager()->getStorage($entity->getEntityTypeId())->load($nid); // get identifiants fo these entities $index = $last->get('field_index')->getValue()[0]['value'] + 1; }