/**
* $_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 = [
'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
$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) {
}
$query .= " AND ($componentClause) ";
}
- if (in_array($name, self::$_domainIDGroups)) {
+ if (self::isDomainOptionGroup($name)) {
$query .= " AND v.domain_id = " . CRM_Core_Config::domainID();
}
* @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]);
* @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) {
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();
}