X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=web%2Fmodules%2Fcontrib%2Fpermissions_by_term%2Fsrc%2FService%2FTerm.php;fp=web%2Fmodules%2Fcontrib%2Fpermissions_by_term%2Fsrc%2FService%2FTerm.php;h=fae9a4c283fed20dde4709ab68d91508495a2e37;hb=1270d9129ce8f27c9b28b10518e32132c58e0aca;hp=0000000000000000000000000000000000000000;hpb=c27c0f0cdaa3f354b1fe54a56ae7e854be6e3f68;p=yaffs-website diff --git a/web/modules/contrib/permissions_by_term/src/Service/Term.php b/web/modules/contrib/permissions_by_term/src/Service/Term.php new file mode 100644 index 000000000..fae9a4c28 --- /dev/null +++ b/web/modules/contrib/permissions_by_term/src/Service/Term.php @@ -0,0 +1,91 @@ +database = $database; + } + + /** + * @param int $nid + * + * @return array + */ + public function getTidsByNid($nid) { + $query = $this->database->select('taxonomy_index', 'ti') + ->fields('ti', ['tid']) + ->condition('ti.nid', $nid); + + return $query->execute() + ->fetchCol(); + } + + /** + * @param array $tids + * + * @return array + */ + public function getNidsByTids($tids) { + if (!empty($tids)) { + $query = $this->database->select('taxonomy_index', 'ti') + ->fields('ti', ['nid']) + ->condition('ti.tid', $tids, 'IN'); + + $nids = $query->execute() + ->fetchCol(); + + return array_unique($nids); + } + else { + return []; + } + } + + /** + * @param string $sTermName + * + * @return int + */ + public function getTermIdByName($sTermName) { + $aTermId = \Drupal::entityQuery('taxonomy_term') + ->condition('name', $sTermName) + ->execute(); + return key($aTermId); + } + + /** + * @param int $term_id + * + * @return string + */ + public function getTermNameById($term_id) { + $term_name = \Drupal::entityQuery('taxonomy_term') + ->condition('id', $term_id) + ->execute(); + return key($term_name); + } + +}