X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FCore%2FPseudoConstant.php;h=06055036670f86751afd901a858fca1fd4a9be3b;hb=f2b53f2699051f6066b579da62b17a939e67119c;hp=a0eff17b6720b90c4a966990df38d876147ce401;hpb=4f82cfab659d214aa0efe87422e6c0271e354823;p=civicrm-core.git diff --git a/CRM/Core/PseudoConstant.php b/CRM/Core/PseudoConstant.php index a0eff17b67..0605503667 100644 --- a/CRM/Core/PseudoConstant.php +++ b/CRM/Core/PseudoConstant.php @@ -50,89 +50,21 @@ class CRM_Core_PseudoConstant { /** - * location type + * static cache for pseudoconstant arrays * @var array * @static */ - private static $locationType; - - /** - * location vCard name - * @var array - * @static - */ - private static $locationVcardName; - - /** - * location display name - * @var array - * @static - */ - private static $locationDisplayName; + private static $cache; /** + * DEPRECATED. Please use the buildOptions() method in the appropriate BAO object. + * * activity type * @var array * @static */ private static $activityType; - /** - * payment processor billing modes - * @var array - * @static - */ - private static $billingMode; - - /** - * component - * @var array - * @static - */ - private static $component; - - /** - * individual prefix - * @var array - * @static - */ - private static $individualPrefix; - - /** - * individual suffix - * @var array - * @static - */ - private static $individualSuffix; - - /** - * gender - * @var array - * @static - */ - private static $gender; - - /** - * im protocols - * @var array - * @static - */ - private static $imProvider; - - /** - * website protocols - * @var array - * @static - */ - private static $websiteType; - - /** - * im protocols - * @var array - * @static - */ - private static $fromEmailAddress; - /** * states, provinces * @var array @@ -169,13 +101,8 @@ class CRM_Core_PseudoConstant { private static $countryIsoCode; /** - * tag - * @var array - * @static - */ - private static $tag; - - /** + * DEPRECATED. Please use the buildOptions() method in the appropriate BAO object. + * * group * @var array * @static @@ -203,20 +130,6 @@ class CRM_Core_PseudoConstant { */ private static $staticGroup; - /** - * user framework groups - * @var array - * @static - */ - private static $ufGroup; - - /** - * custom groups - * @var array - * @static - */ - private static $customGroup; - /** * currency codes * @var array @@ -224,27 +137,6 @@ class CRM_Core_PseudoConstant { */ private static $currencyCode; - /** - * currency Symbols - * @var array - * @static - */ - private static $currencySymbols; - - /** - * project tasks - * @var array - * @static - */ - private static $tasks; - - /** - * preferred communication methods - * @var array - * @static - */ - private static $pcm; - /** * payment processor * @var array @@ -267,47 +159,14 @@ class CRM_Core_PseudoConstant { private static $worldRegions; /** - * honorType - * @var array - * @static - */ - private static $honorType; - - /** + * DEPRECATED. Please use the buildOptions() method in the appropriate BAO object. + * * activity status * @var array * @static */ private static $activityStatus; - /** - * priority - * @var array - * @static - */ - private static $priority; - - /** - * wysiwyg Editor - * @var array - * @static - */ - private static $wysiwygEditor; - - /** - * Mapping Types - * @var array - * @static - */ - private static $mappingType; - - /** - * Phone Types - * @var array - * @static - */ - private static $phoneType; - /** * Visibility * @var array @@ -315,13 +174,6 @@ class CRM_Core_PseudoConstant { */ private static $visibility; - /** - * Mail Protocols - * @var array - * @static - */ - private static $mailProtocol; - /** * Greetings * @var array @@ -344,64 +196,215 @@ class CRM_Core_PseudoConstant { private static $extensions; /** - * activity contacts - * @var array - * @static - */ - private static $activityContacts; - - /** - * event contacts - * @var array - * @static - */ - private static $eventContacts; + * Low-level option getter, rarely accessed directly. + * NOTE: Rather than calling this function directly use CRM_*_BAO_*::buildOptions() + * + * @param String $daoName + * @param String $fieldName + * @param Array $params + * - name string name of the option group + * - flip boolean results are return in id => label format if false + * if true, the results are reversed + * - grouping boolean if true, return the value in 'grouping' column (currently unsupported for tables other than option_value) + * - localize boolean if true, localize the results before returning + * - condition string|array add condition(s) to the sql query + * - keyColumn string the column to use for 'id' + * - labelColumn string the column to use for 'label' + * - orderColumn string the column to use for sorting, defaults to 'weight' column if one exists, else defaults to labelColumn + * - onlyActive boolean return only the action option values + * - fresh boolean ignore cache entries and go back to DB + * + * @return Array on success, FALSE on error. + * + * @static + */ + public static function get($daoName, $fieldName, $params = array()) { + $flip = !empty($params['flip']); + + // Custom fields are not in the schema + if (strpos($fieldName, 'custom') === 0) { + $dao = new CRM_Core_DAO_CustomField; + $dao->id = (int) substr($fieldName, 7); + $dao->find(TRUE); + $customField = (array) $dao; + $dao->free(); + $output = array(); + CRM_Core_BAO_CustomField::buildOption($customField, $output); + return $flip ? array_flip($output) : $output; + } + + // Core field: load schema + $dao = new $daoName; + $fields = $dao->fields(); + $fieldKeys = $dao->fieldKeys(); + $fieldKey = $fieldKeys[$fieldName]; + $dao->free(); + if (empty($fields[$fieldKey])) { + return FALSE; + } + $fieldSpec = $fields[$fieldKey]; + + // If the field is an enum, explode the enum definition and return the array. + if (isset($fieldSpec['enumValues'])) { + // use of a space after the comma is inconsistent in xml + $enumStr = str_replace(', ', ',', $fieldSpec['enumValues']); + $output = explode(',', $enumStr); + return $flip ? array_flip($output) : $output; + } + + elseif (!empty($fieldSpec['pseudoconstant'])) { + $pseudoconstant = $fieldSpec['pseudoconstant']; + // Merge params with defaults + $params += array( + 'grouping' => FALSE, + 'localize' => FALSE, + 'condition' => CRM_Utils_Array::value('condition', $pseudoconstant), + 'keyColumn' => CRM_Utils_Array::value('keyColumn', $pseudoconstant), + 'labelColumn' => CRM_Utils_Array::value('labelColumn', $pseudoconstant), + 'onlyActive' => TRUE, + 'fresh' => FALSE, + ); - /** - * auto renew options - * @var array - * @static - */ - private static $autoRenew; + // Fetch option group from option_value table + if(!empty($pseudoconstant['optionGroupName'])) { + // Call our generic fn for retrieving from the option_value table + return CRM_Core_OptionGroup::values( + $pseudoconstant['optionGroupName'], + $flip, + $params['grouping'], + $params['localize'], + $params['condition'], + $params['labelColumn'] ? $params['labelColumn'] : 'label', + $params['onlyActive'], + $params['fresh'], + $params['keyColumn'] ? $params['keyColumn'] : 'value' + ); + } - /** - * batch mode options - * @var array - * @static - */ - private static $batchModes; + // Fetch options from other tables + if (!empty($pseudoconstant['table'])) { + // Normalize params so the serialized cache string will be consistent. + CRM_Utils_Array::remove($params, 'flip', 'fresh'); + ksort($params); + $cacheKey = $daoName . $fieldName . serialize($params); - /** - * batch type options - * @var array - * @static - */ - private static $batchTypes; + // Retrieve cached options + if (isset(self::$cache[$cacheKey]) && empty($params['fresh'])) { + $output = self::$cache[$cacheKey]; + } + else { + $daoName = CRM_Core_AllCoreTables::getClassForTable($pseudoconstant['table']); + if (!class_exists($daoName)) { + return FALSE; + } + // Get list of fields for the option table + $dao = new $daoName; + $availableFields = array_keys($dao->fieldKeys()); + if (in_array('is_active', $availableFields)) { + $wheres[] = 'is_active = 1'; + } + $dao->free(); + + $select = "SELECT %1 AS id, %2 AS label"; + $from = "FROM %3"; + $wheres = array(); + $order = "ORDER BY %2"; + // Condition param can be passed as an sql clause string or an array of clauses + if (!empty($params['condition'])) { + $wheres[] = implode(' AND ', (array) $params['condition']); + } + // onlyActive param will automatically filter on common flags + if (!empty($params['onlyActive'])) { + foreach (array('is_active' => 1, 'is_deleted' => 0, 'is_test' => 0) as $flag => $val) { + if (in_array($flag, $availableFields)) { + $wheres[] = "$flag = $val"; + } + } + } + // Filter domain specific options + if (in_array('domain_id', $availableFields)) { + $wheres[] = 'domain_id = ' . CRM_Core_Config::domainID(); + } + $queryParams = array( + 1 => array($params['keyColumn'], 'String', CRM_Core_DAO::QUERY_FORMAT_NO_QUOTES), + 2 => array($params['labelColumn'], 'String', CRM_Core_DAO::QUERY_FORMAT_NO_QUOTES), + 3 => array($pseudoconstant['table'], 'String', CRM_Core_DAO::QUERY_FORMAT_NO_QUOTES), + ); + // Add orderColumn param + if (!empty($params['orderColumn'])) { + $queryParams[4] = array($params['orderColumn'], 'String', CRM_Core_DAO::QUERY_FORMAT_NO_QUOTES); + $order = "ORDER BY %4"; + } + // Support no sorting if $params[orderColumn] is FALSE + elseif (isset($params['orderColumn']) && $params['orderColumn'] === FALSE) { + $order = ''; + } + // Default to 'weight' if that column exists + elseif (in_array('weight', $availableFields)) { + $order = "ORDER BY weight"; + } - /** - * batch status options - * @var array - * @static - */ - private static $batchStatues; + $output = array(); + $query = "$select $from"; + if ($wheres) { + $query .= " WHERE " . implode($wheres, ' AND '); + } + $query .= ' ' . $order; + $dao = CRM_Core_DAO::executeQuery($query, $queryParams); + while ($dao->fetch()) { + $output[$dao->id] = $dao->label; + } + $dao->free(); + if (!empty($params['localize'])) { + $i18n = CRM_Core_I18n::singleton(); + $i18n->localizeArray($output); + // Maintain sort by label + if ($order == "ORDER BY %2") { + CRM_Utils_Array::asort($output); + } + } + self::$cache[$cacheKey] = $output; + } + return $flip ? array_flip($output) : $output; + } + } + // If we're still here, it's an error. Return FALSE. + return FALSE; + } /** - * contact Type - * @var array - * @static + * Fetch the label (or other value) for a field given its key + * + * @param String $daoName + * @param String $fieldName + * @param String|Int $key + * @param Array $params will be passed into self::get + * + * @return string */ - private static $contactType; + function getValue($daoName, $fieldName, $key, $params = array()) { + $values = self::get($daoName, $fieldName, $params); + return CRM_Utils_Array::value($key, $values); + } /** - * Financial Account Type - * @var array - * @static + * Fetch the key for a field option given its label/name + * + * @param String $daoName + * @param String $fieldName + * @param String|Int $value + * @param Array $params will be passed into self::get + * + * @return string */ - private static $accountOptionValues; + function getKey($daoName, $fieldName, $value, $params = array()) { + $values = self::get($daoName, $fieldName, $params); + return CRM_Utils_Array::key($value, $values); + } /** - * populate the object from the database. generic populate - * method + * DEPRECATED generic populate method + * All pseudoconstant functions that use this method are also deprecated. * * The static array $var is populated from the db * using the $name DAO. @@ -475,71 +478,15 @@ class CRM_Core_PseudoConstant { * @param boolean $name pseudoconstant to be flushed * */ - public static function flush($name) { - self::$$name = NULL; - } - - /** - * Get all location types. - * - * The static array locationType is returned - * - * @access public - * @static - * - * @param boolean $all - get All location types - default is to get only active ones. - * - * @return array - array reference of all location types. - * - */ - public static function &locationType($all = FALSE) { - if (!self::$locationType) { - self::populate(self::$locationType, 'CRM_Core_DAO_LocationType', $all); + public static function flush($name = 'cache') { + if (property_exists(self, $name)) { + self::$$name = NULL; } - return self::$locationType; } /** - * Get all location vCard names. - * - * The static array locationVcardName is returned - * - * @access public - * @static - * - * @param boolean $all - get All location vCard names - default is to get only active ones. - * - * @return array - array reference of all location vCard names. + * DEPRECATED. Please use the buildOptions() method in the appropriate BAO object. * - */ - public static function &locationVcardName($all = FALSE) { - if (!self::$locationVcardName) { - self::populate(self::$locationVcardName, 'CRM_Core_DAO_LocationType', $all, 'vcard_name'); - } - return self::$locationVcardName; - } - - /** - * Get all location Display names. - * - * The static array locationDisplayName is returned - * - * @access public - * @static - * - * @param boolean $all - get All location display names - default is to get only active ones. - * - * @return array - array reference of all location display names. - * - */ - public static function &locationDisplayName($all = FALSE) { - if (!self::$locationDisplayName) { - self::populate(self::$locationDisplayName, 'CRM_Core_DAO_LocationType', $all, 'display_name'); - } - return self::$locationDisplayName; - } - - /** * Get all Activty types. * * The static array activityType is returned @@ -577,243 +524,41 @@ class CRM_Core_PseudoConstant { $componentClause = " v.component_id IS NOT NULL"; } - $componentIds = array(); - $compInfo = CRM_Core_Component::getEnabledComponents(); - - // build filter for listing activity types only if their - // respective components are enabled - foreach ($compInfo as $compName => $compObj) { - if ($compName == 'CiviCase') { - if ($includeCaseActivities) { - $componentIds[] = $compObj->componentID; - } - } - elseif ($compName == 'CiviCampaign') { - if ($includeCampaignActivities) { - $componentIds[] = $compObj->componentID; - } - } - else { - $componentIds[] = $compObj->componentID; - } - } - - if (count($componentIds)) { - $componentIds = implode(',', $componentIds); - $componentClause = " ($componentClause OR v.component_id IN ($componentIds))"; - if ($onlyComponentActivities) { - $componentClause = " ( v.component_id IN ($componentIds ) )"; - } - } - $condition = $condition . ' AND ' . $componentClause; - - self::$activityType[$index] = CRM_Core_OptionGroup::values('activity_type', FALSE, FALSE, FALSE, $condition, $returnColumn); - } - return self::$activityType[$index]; - } - - /** - * Get all payment-processor billing modes - * - * @access public - * @static - * - * @return array ($id => $name) - */ - public static function billingMode() { - if (!self::$billingMode) { - self::$billingMode = array( - CRM_Core_Payment::BILLING_MODE_FORM => 'form', - CRM_Core_Payment::BILLING_MODE_BUTTON => 'button', - CRM_Core_Payment::BILLING_MODE_NOTIFY => 'notify', - ); - } - return self::$billingMode; - } - - /** - * Get all component names - * - * @access public - * @static - * - * @return array - array reference of all location display names. - * - */ - public static function &component() { - if (!self::$component) { - self::populate(self::$component, 'CRM_Core_DAO_Component', TRUE, 'name'); - } - return self::$component; - } - - - /** - * Get all Individual Prefix. - * - * The static array individualPrefix is returned - * - * @access public - * @static - * - * @param boolean $all - get All Individual Prefix - default is to get only active ones. - * - * @return array - array reference of all individual prefix. - * - */ - public static function &individualPrefix() { - if (!self::$individualPrefix) { - self::$individualPrefix = CRM_Core_OptionGroup::values('individual_prefix'); - } - return self::$individualPrefix; - } - - /** - * Get all phone type - * The static array phoneType is returned - * - * @access public - * @static - * - * @param boolean $all - get All phone type - default is to get - * only active ones. - * - * @return array - array reference of all phone types. - * - */ - public static function &phoneType() { - if (!self::$phoneType) { - self::$phoneType = CRM_Core_OptionGroup::values('phone_type'); - } - return self::$phoneType; - } - - /** - * Get all Individual Suffix. - * - * The static array individualSuffix is returned - * - * @access public - * @static - * - * @param boolean $all - get All Individual Suffix - default is to get only active ones. - * - * @return array - array reference of all individual suffix. - * - */ - public static function &individualSuffix() { - if (!self::$individualSuffix) { - self::$individualSuffix = CRM_Core_OptionGroup::values('individual_suffix'); - } - return self::$individualSuffix; - } - - /** - * Get all Gender. - * - * The static array gender is returned - * - * @access public - * @static - * - * @param boolean $all - get All Gender - default is to get only active ones. - * - * @return array - array reference of all gender. - * - */ - public static function &gender($localize = FALSE) { - if (!self::$gender) { - self::$gender = CRM_Core_OptionGroup::values('gender', FALSE, FALSE, $localize); - } - return self::$gender; - } - - /** - * Get all the IM Providers from database. - * - * The static array imProvider is returned, and if it's - * called the first time, the IM DAO is used - * to get all the IM Providers. - * - * Note: any database errors will be trapped by the DAO. - * - * @access public - * @static - * - * @return array - array reference of all IM providers. - * - */ - public static function &IMProvider($localize = FALSE) { - if (!self::$imProvider) { - self::$imProvider = CRM_Core_OptionGroup::values('instant_messenger_service', FALSE, FALSE, $localize); - } - return self::$imProvider; - } - - /** - * Get all the website types from database. - * - * The static array websiteType is returned, and if it's - * called the first time, the Website DAO is used - * to get all the Website Types. - * - * Note: any database errors will be trapped by the DAO. - * - * @access public - * @static - * - * @return array - array reference of all Website types. - * - */ - public static function &websiteType() { - if (!self::$websiteType) { - self::$websiteType = CRM_Core_OptionGroup::values('website_type'); - } - return self::$websiteType; - } + $componentIds = array(); + $compInfo = CRM_Core_Component::getEnabledComponents(); - /** - * Get the all From Email Address from database. - * - * The static array $fromEmailAddress is returned, and if it's - * called the first time, DAO is used - * to get all the From Email Address - * - * Note: any database errors will be trapped by the DAO. - * - * @access public - * @static - * - * @return array - array reference of all From Email Address. - */ - public static function &fromEmailAddress() { - if (!self::$fromEmailAddress) { - self::$fromEmailAddress = CRM_Core_OptionGroup::values('from_email_address'); - } - return self::$fromEmailAddress; - } + // build filter for listing activity types only if their + // respective components are enabled + foreach ($compInfo as $compName => $compObj) { + if ($compName == 'CiviCase') { + if ($includeCaseActivities) { + $componentIds[] = $compObj->componentID; + } + } + elseif ($compName == 'CiviCampaign') { + if ($includeCampaignActivities) { + $componentIds[] = $compObj->componentID; + } + } + else { + $componentIds[] = $compObj->componentID; + } + } - /** - * Get the all Mail Protocols from database. - * - * The static array mailProtocol is returned, and if it's - * called the first time, the DAO is used - * to get all the Mail Protocol. - * - * Note: any database errors will be trapped by the DAO. - * - * @access public - * @static - * - * @return array - array reference of all Mail Protocols. - */ - public static function &mailProtocol() { - if (!self::$mailProtocol) { - self::$mailProtocol = CRM_Core_OptionGroup::values('mail_protocol'); + if (count($componentIds)) { + $componentIds = implode(',', $componentIds); + $componentClause = " ($componentClause OR v.component_id IN ($componentIds))"; + if ($onlyComponentActivities) { + $componentClause = " ( v.component_id IN ($componentIds ) )"; + } + } + $condition = $condition . ' AND ' . $componentClause; + + self::$activityType[$index] = CRM_Core_OptionGroup::values('activity_type', FALSE, FALSE, FALSE, $condition, $returnColumn); } - return self::$mailProtocol; + return self::$activityType[$index]; } - + /** * Get all the State/Province from database. * @@ -1006,7 +751,7 @@ WHERE id = %1"; return self::$country[$id]; } else { - return NULL; + return CRM_Core_DAO::$_nullObject; } } return self::$country; @@ -1036,35 +781,15 @@ WHERE id = %1"; return self::$countryIsoCode[$id]; } else { - return NULL; + return CRM_Core_DAO::$_nullObject; } } return self::$countryIsoCode; } /** - * Get all the categories from database. - * - * The static array tag is returned, and if it's - * called the first time, the Tag DAO is used - * to get all the categories. - * - * Note: any database errors will be trapped by the DAO. - * - * @access public - * @static - * - * @return array - array reference of all categories. + * DEPRECATED. Please use the buildOptions() method in the appropriate BAO object. * - */ - public static function &tag() { - if (!self::$tag) { - self::populate(self::$tag, 'CRM_Core_DAO_Tag', TRUE); - } - return self::$tag; - } - - /** * Get all groups from database * * The static array group is returned, and if it's @@ -1124,6 +849,8 @@ WHERE id = %1"; } /** + * DEPRECATED. Please use the buildOptions() method in the appropriate BAO object. + * * Get all permissioned groups from database * * The static array group is returned, and if it's @@ -1181,51 +908,6 @@ WHERE id = %1"; return self::$staticGroup; } - /** - * Get all the custom groups - * - * @access public - * - * @return array - array reference of all groups. - * @static - */ - public static function &customGroup($reset = FALSE) { - if (!self::$customGroup || $reset) { - self::populate(self::$customGroup, 'CRM_Core_DAO_CustomGroup', FALSE, 'title', 'is_active', NULL, 'title'); - } - return self::$customGroup; - } - - /** - * Get all the user framework groups - * - * @access public - * - * @return array - array reference of all groups. - * @static - */ - public static function &ufGroup() { - if (!self::$ufGroup) { - self::populate(self::$ufGroup, 'CRM_Core_DAO_UFGroup', FALSE, 'title', 'is_active', NULL, 'title'); - } - return self::$ufGroup; - } - - /** - * Get all the project tasks - * - * @access public - * - * @return array - array reference of all tasks - * @static - */ - public static function &tasks() { - if (!self::$tasks) { - self::populate(self::$tasks, 'CRM_Project_DAO_Task', FALSE, 'title', 'is_active', NULL, 'title'); - } - return self::$tasks; - } - /** * Get all Relationship Types from database. * @@ -1272,23 +954,6 @@ WHERE id = %1"; return self::$relationshipType[$valueColumnName]; } - /** - * Get all the Currency Symbols from Database - * - * @access public - * - * @return array - array reference of all Currency Symbols - * @static - */ - public static function ¤cySymbols($name = 'symbol', $key = 'id') { - $cacheKey = "{$name}_{$key}"; - if (!isset(self::$currencySymbols[$cacheKey])) { - self::populate(self::$currencySymbols[$cacheKey], 'CRM_Financial_DAO_Currency', TRUE, $name, NULL, NULL, 'name', $key); - } - - return self::$currencySymbols[$cacheKey]; - } - /** * get all the ISO 4217 currency codes * @@ -1603,36 +1268,14 @@ WHERE id = %1"; return self::$county[$id]; } else { - return NULL; + return CRM_Core_DAO::$_nullObject; } } return self::$county; } /** - * Get all the Preferred Communication Methods from database. - * - * @access public - * @static - * - * @return array self::pcm - array reference of all preferred communication methods. - * - */ - public static function &pcm($localize = FALSE) { - if (!self::$pcm) { - self::$pcm = CRM_Core_OptionGroup::values('preferred_communication_method', FALSE, FALSE, $localize); - } - return self::$pcm; - } - - /** - * Alias of pcm - */ - public static function preferredCommunicationMethod($localize = FALSE) { - return self::pcm($localize); - } - - /** + * DEPRECATED. Please use the buildOptions() method in the appropriate BAO object. * Get all active payment processors * * The static array paymentProcessor is returned @@ -1667,7 +1310,7 @@ WHERE id = %1"; } /** - * Get all active payment processors + * DEPRECATED. Please use the buildOptions() method in the appropriate BAO object. * * The static array paymentProcessorType is returned * @@ -1708,7 +1351,7 @@ WHERE id = %1"; return self::$worldRegions[$id]; } else { - return NULL; + return CRM_Core_DAO::$_nullObject; } } @@ -1716,26 +1359,8 @@ WHERE id = %1"; } /** - * Get all Honor Type. - * - * The static array honorType is returned - * - * @access public - * @static - * - * @param boolean $all - get All Honor Type. - * - * @return array - array reference of all Honor Types. + * DEPRECATED. Please use the buildOptions() method in the appropriate BAO object. * - */ - public static function &honor() { - if (!self::$honorType) { - self::$honorType = CRM_Core_OptionGroup::values('honor_type'); - } - return self::$honorType; - } - - /** * Get all Activity Statuses. * * The static array activityStatus is returned @@ -1759,41 +1384,8 @@ WHERE id = %1"; } /** - * Get all Priorities - * - * The static array Priority is returned - * - * @access public - * @static - * - * @return array - array reference of all Priority - */ - public static function &priority() { - if (!self::$priority) { - self::$priority = CRM_Core_OptionGroup::values('priority'); - } - - return self::$priority; - } - - /** - * Get all WYSIWYG Editors. - * - * The static array wysiwygEditor is returned - * - * @access public - * @static + * DEPRECATED. Please use the buildOptions() method in the appropriate BAO object. * - * @return array - array reference of all wysiwygEditors - */ - public static function &wysiwygEditor() { - if (!self::$wysiwygEditor) { - self::$wysiwygEditor = CRM_Core_OptionGroup::values('wysiwyg_editor'); - } - return self::$wysiwygEditor; - } - - /** * Get all Visibility levels. * * The static array visibility is returned @@ -1816,20 +1408,6 @@ WHERE id = %1"; return self::$visibility[$column]; } - /** - * Get all mapping types - * - * @return array - array reference of all mapping types - * @access public - * @static - */ - public static function &mappingTypes() { - if (!self::$mappingType) { - self::$mappingType = CRM_Core_OptionGroup::values('mapping_type'); - } - return self::$mappingType; - } - public static function &stateProvinceForCountry($countryID, $field = 'name') { static $_cache = NULL; @@ -1944,7 +1522,7 @@ ORDER BY name"; */ static function countryIDForStateID($stateID) { if (empty($stateID)) { - return NULL; + return CRM_Core_DAO::$_nullObject; } $query = " @@ -2021,13 +1599,9 @@ WHERE id = %1 public static function &greetingDefaults() { if (!self::$greetingDefaults) { $defaultGreetings = array(); - $contactTypes = array( - 'Individual' => 1, - 'Household' => 2, - 'Organization' => 3, - ); + $contactTypes = self::get('CRM_Contact_DAO_Contact', 'contact_type', array('keyColumn' => 'id', 'labelColumn' => 'name')); - foreach ($contactTypes as $contactType => $filter) { + foreach ($contactTypes as $filter => $contactType) { $filterCondition = " AND (v.filter = 0 OR v.filter = $filter) AND v.is_default = 1 "; foreach (CRM_Contact_BAO_Contact::$_greetingTypes as $greeting) { @@ -2042,26 +1616,6 @@ WHERE id = %1 return self::$greetingDefaults; } - /** - * Get all the Languages from database. - * - * @access public - * @static - * - * @return array self::languages - array reference of all languages - * - */ - public static function &languages() { - return CRM_Core_I18n_PseudoConstant::languages(); - } - - /** - * Alias of above - */ - public static function &preferredLanguage() { - return CRM_Core_I18n_PseudoConstant::languages(); - } - /** * Get all extensions * @@ -2104,158 +1658,5 @@ WHERE id = %1 public static function getModuleExtensions($fresh = FALSE) { return CRM_Extension_System::singleton()->getMapper()->getActiveModuleFiles($fresh); } - - /** - * Get all Activity Contacts - * - * The static array activityContacts is returned - * - * @access public - * @static - * - * @param string $column db column name/label. - * - * @return array - array reference of all activity Contacts - * - */ - public static function &activityContacts($column = 'label') { - if (!self::$activityContacts) { - self::$activityContacts = CRM_Core_OptionGroup::values('activity_contacts', FALSE, FALSE, FALSE, NULL, $column); - } - return self::$activityContacts; - } - - /** - * Get all Event Contacts - * - * The static array eventContacts is returned - * - * @access public - * @static - * - * @param string $column db column name/label. - * - * @return array - array reference of all event Contacts - * - */ - public static function &eventContacts($column = 'label') { - if (!self::$eventContacts) { - self::$eventContacts = CRM_Core_OptionGroup::values('event_contacts', FALSE, FALSE, FALSE, NULL, $column); - } - return self::$eventContacts; - } - - /** - * Get all options values - * - * The static array option values is returned - * - * @access public - * @static - * - * @param boolean $optionGroupName - get All Option Group values- default is to get only active ones. - * - * @return array - array reference of all Option Group Name - * - */ - public static function accountOptionValues($optionGroupName, $id = null, $condition = null) { - $cacheKey = $optionGroupName . '_' . $condition; - if (empty(self::$accountOptionValues[$cacheKey])) { - self::$accountOptionValues[$cacheKey] = CRM_Core_OptionGroup::values($optionGroupName, false, false, false, $condition); - } - if ($id) { - return CRM_Utils_Array::value($id, self::$accountOptionValues[$cacheKey]); - } - - return self::$accountOptionValues[$cacheKey]; - } - - /** - * Get all batch modes - * - * The static array batchModes - * - * @access public - * @static - * - * @return array - array reference of all batch modes - */ - public static function &getBatchMode($columnName = 'label') { - if (!self::$batchModes) { - self::$batchModes = CRM_Core_OptionGroup::values('batch_mode', false, false, false, null, $columnName); - } - - return self::$batchModes; - } - - /** - * Get all batch types - * - * The static array batchTypes - * - * @access public - * @static - * - * @return array - array reference of all batch types - */ - public static function &getBatchType() { - if (!self::$batchTypes) { - self::$batchTypes = CRM_Core_OptionGroup::values('batch_type'); - } - - return self::$batchTypes; - } - - /** - * Get all batch statuses - * - * The static array batchStatues - * - * @access public - * @static - * - * @return array - array reference of all batch statuses - */ - public static function &getBatchStatus() { - if (!self::$batchStatues) { - self::$batchStatues = CRM_Core_OptionGroup::values('batch_status'); - } - - return self::$batchStatues; - } - - /* - * The static array contactType is returned - * - * @access public - * @static - * @param string $column db column name/label. - * - * @return array - array reference of all Types - * - */ - - public static function &contactType($column = 'label') { - if (!self::$contactType) { - self::$contactType = CRM_Contact_BAO_ContactType::basicTypePairs(TRUE); - } - return self::$contactType; - } - - /** - * Get all the auto renew options - * - * @access public - * @static - * - * @return array self::autoRenew - array reference of all autoRenew - * - */ - public static function &autoRenew() { - if (!self::$autoRenew) { - self::$autoRenew = CRM_Core_OptionGroup::values('auto_renew_options', FALSE, FALSE); - } - return self::$autoRenew; - } }