Ver código fonte

fixed autocomplete obsolete custom code

bach 2 anos atrás
pai
commit
6d46d0d48a

+ 27 - 7
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) {

+ 2 - 1
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;
     }