<?php
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.3 |
+ | CiviCRM version 4.4 |
+--------------------------------------------------------------------+
| Copyright CiviCRM LLC (c) 2004-2013 |
+--------------------------------------------------------------------+
* @static
* @void
*/
- static function &valuesByID($id, $flip = FALSE, $grouping = FALSE, $localize = FALSE, $labelColumnName = 'label') {
- $cacheKey = "CRM_OG_ID_{$id}_{$flip}_{$grouping}_{$localize}_{$labelColumnName}";
+ 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);
$cache = CRM_Utils_Cache::singleton();
- $var = $cache->get($cacheKey);
- if ($var) {
- return $var;
+ if (!$fresh) {
+ $var = $cache->get($cacheKey);
+ if ($var) {
+ return $var;
+ }
}
$query = "
SELECT v.{$labelColumnName} as {$labelColumnName} ,v.value as value, v.grouping as grouping
civicrm_option_group g
WHERE v.option_group_id = g.id
AND g.id = %1
- AND v.is_active = 1
AND g.is_active = 1
- ORDER BY v.weight, v.label;
";
+ if ($onlyActive) {
+ $query .= " AND v.is_active = 1 ";
+ }
+ $query .= " ORDER BY v.weight, v.label";
+
$p = array(1 => array($id, 'Integer'));
$dao = CRM_Core_DAO::executeQuery($query, $p);
* @static
*
* @return string the value from the row where is_default = true
- */
+ */
static function getDefaultValue($groupName) {
if (empty($groupName)) {
return NULL;
$p = array(1 => array($groupName, 'String'));
return CRM_Core_DAO::singleValueQuery($query, $p);
}
-
+
/**
* Creates a new option group with the passed in values
* @TODO: Should update the group if it already exists intelligently, so multi-lingual is
static function flushAll() {
self::$_values = array();
self::$_cache = array();
+ CRM_Utils_Cache::singleton()->flush();
}
}