<?php
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.4 |
+ | CiviCRM version 4.5 |
+--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2013 |
+ | Copyright CiviCRM LLC (c) 2004-2014 |
+--------------------------------------------------------------------+
| This file is a part of CiviCRM. |
| |
/**
*
* @package CRM
- * @copyright CiviCRM LLC (c) 2004-2013
+ * @copyright CiviCRM LLC (c) 2004-2014
* $Id$
*
*/
* Checks whether an item is present in the in-memory cache table
*
* @param string $group (required) The group name of the item
- * @param string $name (required) The name of the setting
- * @param int $componentID The optional component ID (so componenets can share the same name space)
- * @param int $contactID If set, this is a contactID specific setting, else its a global setting
- * @param int $load if true, load from local cache (typically memcache)
+ * @param string $name (required) The name of the setting
+ * @param int $componentID The optional component ID (so components can share the same name space)
+ * @param int $contactID If set, this is a contactID specific setting, else its a global setting
+ * @param bool|int $load if true, load from local cache (typically memcache)
+ *
+ * @param null $domainID
+ * @param bool $force
*
* @return boolean true if item is already in cache
* @static
$globalCache->delete($cacheKey);
}
+ /**
+ * @param $values
+ * @param $group
+ * @param null $componentID
+ * @param null $contactID
+ * @param null $domainID
+ *
+ * @return string
+ */
static function setCache($values,
$group,
$componentID = NULL,
return $cacheKey;
}
+ /**
+ * @param $group
+ * @param null $name
+ * @param null $componentID
+ * @param null $contactID
+ * @param null $domainID
+ *
+ * @return CRM_Core_DAO_Domain|CRM_Core_DAO_Setting
+ */
static function dao($group,
$name = NULL,
$componentID = NULL,
* Retrieve the value of a setting from the DB table
*
* @param string $group (required) The group name of the item
- * @param string $name (required) The name under which this item is stored
- * @param int $componentID The optional component ID (so componenets can share the same name space)
+ * @param string $name (required) The name under which this item is stored
+ * @param int $componentID The optional component ID (so componenets can share the same name space)
* @param string $defaultValue The default value to return for this setting if not present in DB
- * @param int $contactID If set, this is a contactID specific setting, else its a global setting
-
+ * @param int $contactID If set, this is a contactID specific setting, else its a global setting
+ *
+ * @param null $domainID
*
* @return object The data if present in the setting table, else null
* @static
* Store multiple items in the setting table
*
* @param array $params (required) An api formatted array of keys and values
+ * @param null $domains
+ * @param $settingsToReturn
+ *
* @domains array an array of domains to get settings for. Default is the current domain
* @return void
* @static
*
* @param object $value (required) The value that will be serialized and stored
* @param string $group (required) The group name of the item
- * @param string $name (required) The name of the setting
- * @param int $componentID The optional component ID (so componenets can share the same name space)
- * @param int $createdID An optional ID to assign the creator to. If not set, retrieved from session
+ * @param string $name (required) The name of the setting
+ * @param int $componentID The optional component ID (so componenets can share the same name space)
+ * @param null $contactID
+ * @param int $createdID An optional ID to assign the creator to. If not set, retrieved from session
+ *
+ * @param null $domainID
*
* @return void
* @static
* _setItem() is the common logic shared by setItem() and setItems().
*
* @param array $params (required) An api formatted array of keys and values
+ * @param null $domains
+ *
+ * @throws api_Exception
* @domains array an array of domains to get settings for. Default is the current domain
- * @return void
+ * @return array
* @static
* @access public
*/
* gets metadata about the settings fields (from getfields) based on the fields being passed in
*
* This function filters on the fields like 'version' & 'debug' that are not settings
+ *
* @param array $params Parameters as passed into API
* @param array $fields empty array to be populated with fields metadata
* @param bool $createMode
*
+ * @throws api_Exception
* @return array $fieldstoset name => value array of the fields to be set (with extraneous removed)
*/
static function validateSettingsInput($params, &$fields, $createMode = TRUE) {
'IDS_request_uri',
'IDS_user_agent',
'check_permissions',
+ 'options',
);
$settingParams = array_diff_key($params, array_fill_keys($ignoredParams, TRUE));
$getFieldsParams = array('version' => 3);
list($name) = array_keys($settingParams);
$getFieldsParams['name'] = $name;
}
- $fields = civicrm_api('setting','getfields', $getFieldsParams);
+ $fields = civicrm_api3('setting','getfields', $getFieldsParams);
$invalidParams = (array_diff_key($settingParams, $fields['values']));
if (!empty($invalidParams)) {
throw new api_Exception(implode(',', $invalidParams) . " not valid settings");
* @params string $name Name of specific setting e.g customCSSURL
* @params integer $componentID id of relevant component.
*
+ * @param null $componentID
+ * @param array $filters
+ * @param null $domainID
+ * @param null $profile
+ *
* @return array $result - the following information as appropriate for each setting
* - name
* - type
if ($settingsMetadata === NULL) {
$settingsMetadata = CRM_Core_BAO_Cache::getItem('CiviCRM setting Spec', 'All', $componentID);
if (empty($settingsMetadata)) {
- $settingsMetadata = array();
global $civicrm_root;
$metaDataFolders = array($civicrm_root. '/settings');
CRM_Utils_Hook::alterSettingsFolders($metaDataFolders);
- foreach ($metaDataFolders as $metaDataFolder) {
- $settingsMetadata = $settingsMetadata + self::loadSettingsMetaData($metaDataFolder);
- }
+ $settingsMetadata = self::loadSettingsMetaDataFolders($metaDataFolders);
CRM_Core_BAO_Cache::setItem($settingsMetadata,'CiviCRM setting Spec', 'All', $componentID);
}
$cached = 0;
}
+ /**
+ * Load the settings files defined in a series of folders
+ * @param array $metaDataFolders list of folder paths
+ * @return array
+ */
+ public static function loadSettingsMetaDataFolders($metaDataFolders) {
+ $settingsMetadata = array();
+ $loadedFolders = array();
+ foreach ($metaDataFolders as $metaDataFolder) {
+ $realFolder = realpath($metaDataFolder);
+ if (is_dir($realFolder) && !isset($loadedFolders[$realFolder])) {
+ $loadedFolders[$realFolder] = TRUE;
+ $settingsMetadata = $settingsMetadata + self::loadSettingsMetaData($metaDataFolder);
+ }
+ }
+ return $settingsMetadata;
+ }
+
/**
* Load up settings metadata from files
*/
}
}
+ /**
+ * @param $group
+ * @param $name
+ * @param bool $system
+ * @param null $userID
+ * @param bool $localize
+ * @param string $returnField
+ * @param bool $returnNameANDLabels
+ * @param null $condition
+ *
+ * @return array
+ */
static function valueOptions($group,
$name,
$system = TRUE,
return ($returnNameANDLabels) ? $nameAndLabels : $returnValues;
}
+ /**
+ * @param $group
+ * @param $name
+ * @param $value
+ * @param bool $system
+ * @param null $userID
+ * @param string $keyField
+ */
static function setValueOption($group,
$name,
$value,
self::setItem($optionValue, $group, $name);
}
+ /**
+ * @param $params
+ * @param null $domainID
+ */
static function fixAndStoreDirAndURL(&$params, $domainID = NULL) {
if (self::isUpgradeFromPreFourOneAlpha1()) {
return;
}
}
+ /**
+ * @param $params
+ * @param $group
+ */
static function storeDirectoryOrURLPreferences(&$params, $group) {
foreach ($params as $name => $value) {
// always try to store relative directory or url from CMS root
}
}
+ /**
+ * @param $params
+ * @param bool $setInConfig
+ */
static function retrieveDirectoryAndURLPreferences(&$params, $setInConfig = FALSE) {
if (CRM_Core_Config::isUpgradeMode()) {
$isJoomla = (defined('CIVICRM_UF') && CIVICRM_UF == 'Joomla') ? TRUE : FALSE;
* Determine what, if any, overrides have been provided
* for a setting.
*
+ * @param $group
+ * @param $name
+ * @param $default
+ *
* @return mixed, NULL or an overriden value
*/
protected static function getOverride($group, $name, $default) {