Updated to Drupal 8.5. Core Media not yet in use.
[yaffs-website] / web / modules / contrib / permissions_by_term / src / Service / Term.php
index fae9a4c283fed20dde4709ab68d91508495a2e37..565513d43240615c65866be397fcfb77382c927b 100644 (file)
@@ -3,6 +3,8 @@
 namespace Drupal\permissions_by_term\Service;
 
 use Drupal\Core\Database\Connection;
+use Drupal\taxonomy\Entity\Term as TermEntity;
+use Drupal\Component\Utility\Html;
 
 /**
  * Class Term
@@ -18,6 +20,11 @@ class Term {
    */
   private $database;
 
+  /**
+   * @var TermEntity
+   */
+  private $term;
+
   /**
    * Term constructor.
    *
@@ -70,9 +77,16 @@ class Term {
    * @return int
    */
   public function getTermIdByName($sTermName) {
+    $sTermName = Html::decodeEntities($sTermName);
     $aTermId = \Drupal::entityQuery('taxonomy_term')
       ->condition('name', $sTermName)
       ->execute();
+
+    $term = \Drupal::entityTypeManager()->getStorage('taxonomy_term')->load(key($aTermId));
+    if ($term instanceof TermEntity) {
+      $this->setTerm($term);
+    }
+
     return key($aTermId);
   }
 
@@ -88,4 +102,15 @@ class Term {
     return key($term_name);
   }
 
+  public function setTerm(TermEntity $term) {
+    $this->term = $term;
+  }
+
+  /**
+   * @return TermEntity
+   */
+  public function getTerm() {
+    return $this->term;
+  }
+
 }