X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FCore%2FOptionGroup.php;h=0b2b3653d5477804db367163004692b7005f0f61;hb=2265be8bde8b675c6940f4c59927c6612717acb2;hp=1843cfeeb9316f3885f6e9e116a4cbf0d51c0d67;hpb=ddfe0227c4c338c95157da434ac6c2703d1c6b63;p=civicrm-core.git diff --git a/CRM/Core/OptionGroup.php b/CRM/Core/OptionGroup.php index 1843cfeeb9..0b2b3653d5 100644 --- a/CRM/Core/OptionGroup.php +++ b/CRM/Core/OptionGroup.php @@ -21,6 +21,8 @@ class CRM_Core_OptionGroup { /** * $_domainIDGroups array maintains the list of option groups for whom * domainID is to be considered. + * + * FIXME: Hardcoded list = bad. It would be better to make this a column in the civicrm_option_group table * @var array */ public static $_domainIDGroups = [ @@ -28,6 +30,14 @@ class CRM_Core_OptionGroup { 'grant_type', ]; + /** + * @param $groupName + * @return bool + */ + public static function isDomainOptionGroup($groupName) { + return in_array($groupName, self::$_domainIDGroups, TRUE); + } + /** * @param CRM_Core_DAO $dao * @param bool $flip @@ -106,11 +116,11 @@ class CRM_Core_OptionGroup { $orderBy = 'weight' ) { $cache = CRM_Utils_Cache::singleton(); - if (in_array($name, self::$_domainIDGroups)) { - $cacheKey = self::createCacheKey($name, $flip, $grouping, $localize, $condition, $labelColumnName, $onlyActive, $keyColumnName, $orderBy, CRM_Core_Config::domainID()); + if (self::isDomainOptionGroup($name)) { + $cacheKey = self::createCacheKey($name, CRM_Core_I18n::getLocale(), $flip, $grouping, $localize, $condition, $labelColumnName, $onlyActive, $keyColumnName, $orderBy, CRM_Core_Config::domainID()); } else { - $cacheKey = self::createCacheKey($name, $flip, $grouping, $localize, $condition, $labelColumnName, $onlyActive, $keyColumnName, $orderBy); + $cacheKey = self::createCacheKey($name, CRM_Core_I18n::getLocale(), $flip, $grouping, $localize, $condition, $labelColumnName, $onlyActive, $keyColumnName, $orderBy); } if (!$fresh) { @@ -144,7 +154,7 @@ WHERE v.option_group_id = g.id } $query .= " AND ($componentClause) "; } - if (in_array($name, self::$_domainIDGroups)) { + if (self::isDomainOptionGroup($name)) { $query .= " AND v.domain_id = " . CRM_Core_Config::domainID(); } @@ -181,7 +191,7 @@ WHERE v.option_group_id = g.id * @param string $keyColumnName */ protected static function flushValues($name, $flip, $grouping, $localize, $condition, $labelColumnName, $onlyActive, $keyColumnName = 'value') { - $cacheKey = self::createCacheKey($name, $flip, $grouping, $localize, $condition, $labelColumnName, $onlyActive, $keyColumnName); + $cacheKey = self::createCacheKey($name, CRM_Core_I18n::getLocale(), $flip, $grouping, $localize, $condition, $labelColumnName, $onlyActive, $keyColumnName); $cache = CRM_Utils_Cache::singleton(); $cache->delete($cacheKey); unset(self::$_cache[$cacheKey]); @@ -219,7 +229,7 @@ WHERE v.option_group_id = g.id * @void */ public static function &valuesByID($id, $flip = FALSE, $grouping = FALSE, $localize = FALSE, $labelColumnName = 'label', $onlyActive = TRUE, $fresh = FALSE) { - $cacheKey = self::createCacheKey($id, $flip, $grouping, $localize, $labelColumnName, $onlyActive); + $cacheKey = self::createCacheKey($id, CRM_Core_I18n::getLocale(), $flip, $grouping, $localize, $labelColumnName, $onlyActive); $cache = CRM_Utils_Cache::singleton(); if (!$fresh) { @@ -433,7 +443,7 @@ WHERE v.option_group_id = g.id AND g.is_active = 1 AND v.is_default = 1 "; - if (in_array($groupName, self::$_domainIDGroups)) { + if (self::isDomainOptionGroup($groupName)) { $query .= " AND v.domain_id = " . CRM_Core_Config::domainID(); }