X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FCore%2FReference%2FDynamic.php;h=b806a89398a7feb2650cdac82c5ad0f96183c9b5;hb=2265be8bde8b675c6940f4c59927c6612717acb2;hp=6c5ba398ca1eb040e038c91abe40dec90f184e2e;hpb=e48ed441e7d36e73a3ea5554a8e59411e8eb9920;p=civicrm-core.git diff --git a/CRM/Core/Reference/Dynamic.php b/CRM/Core/Reference/Dynamic.php index 6c5ba398ca..b806a89398 100644 --- a/CRM/Core/Reference/Dynamic.php +++ b/CRM/Core/Reference/Dynamic.php @@ -13,9 +13,24 @@ class CRM_Core_Reference_Dynamic extends CRM_Core_Reference_Basic { * @return bool */ public function matchesTargetTable($tableName) { + // FIXME: Shouldn't this check against keys returned by getTargetEntities? return TRUE; } + /** + * @return array + * [table_name => EntityName] + */ + public function getTargetEntities(): array { + $targetEntities = []; + $bao = CRM_Core_DAO_AllCoreTables::getClassForTable($this->refTable); + $targetTables = (array) $bao::buildOptions($this->refTypeColumn); + foreach ($targetTables as $table => $label) { + $targetEntities[$table] = CRM_Core_DAO_AllCoreTables::getEntityNameForTable($table); + } + return $targetEntities; + } + /** * Create a query to find references to a particular record. *