3 namespace Drupal\permissions_by_term\Service;
5 use Drupal\Core\Database\Connection;
6 use Drupal\taxonomy\Entity\Term;
7 use Drupal\Component\Utility\Html;
12 * @package Drupal\permissions_by_term\Service
17 * The database connection.
31 * @param Connection $database
33 public function __construct(
36 $this->database = $database;
44 public function getTidsByNid($nid) {
45 $query = $this->database->select('taxonomy_index', 'ti')
46 ->fields('ti', ['tid'])
47 ->condition('ti.nid', $nid);
49 return $query->execute()
58 public function getNidsByTids($tids) {
60 $query = $this->database->select('taxonomy_index', 'ti')
61 ->fields('ti', ['nid'])
62 ->condition('ti.tid', $tids, 'IN');
64 $nids = $query->execute()
67 return array_unique($nids);
75 * @param string $sTermName
79 public function getTermIdByName($sTermName) {
80 $sTermName = Html::decodeEntities($sTermName);
81 $aTermId = \Drupal::entityQuery('taxonomy_term')
82 ->condition('name', $sTermName . '%', 'LIKE')
85 if (!empty($aTermId)) {
86 $term = \Drupal::entityTypeManager()->getStorage('taxonomy_term')->load(key($aTermId));
87 if ($term instanceof TermEntity) {
88 $this->setTerm($term);
102 public function getTermNameById($term_id) {
103 $term_name = \Drupal::entityQuery('taxonomy_term')
104 ->condition('id', $term_id)
106 return key($term_name);
109 public function setTerm(TermEntity $term) {
116 public function getTerm() {