本文整理汇总了PHP中CRM_Core_DAO_Domain::selectAdd方法的典型用法代码示例。如果您正苦于以下问题:PHP CRM_Core_DAO_Domain::selectAdd方法的具体用法?PHP CRM_Core_DAO_Domain::selectAdd怎么用?PHP CRM_Core_DAO_Domain::selectAdd使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CRM_Core_DAO_Domain
的用法示例。
在下文中一共展示了CRM_Core_DAO_Domain::selectAdd方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: verifyPreDBState
/**
* @param $errorMessage
*
* @return bool
*/
function verifyPreDBState(&$errorMessage)
{
$errorMessage = ts('Pre-condition failed for upgrade step %1.', array(1 => '4'));
if (CRM_Core_DAO::checkTableExists('civicrm_event_page')) {
return FALSE;
}
// check fields which MUST be present if a proper 2.2 db
if (!CRM_Core_DAO::checkFieldExists('civicrm_event', 'intro_text') || !CRM_Core_DAO::checkFieldExists('civicrm_event', 'footer_text') || !CRM_Core_DAO::checkFieldExists('civicrm_event', 'confirm_title') || !CRM_Core_DAO::checkFieldExists('civicrm_event', 'confirm_text') || !CRM_Core_DAO::checkFieldExists('civicrm_event', 'confirm_footer_text') || !CRM_Core_DAO::checkFieldExists('civicrm_event', 'is_email_confirm') || !CRM_Core_DAO::checkFieldExists('civicrm_event', 'confirm_email_text') || !CRM_Core_DAO::checkFieldExists('civicrm_event', 'confirm_from_name') || !CRM_Core_DAO::checkFieldExists('civicrm_event', 'confirm_from_email') || !CRM_Core_DAO::checkFieldExists('civicrm_event', 'cc_confirm') || !CRM_Core_DAO::checkFieldExists('civicrm_event', 'bcc_confirm') || !CRM_Core_DAO::checkFieldExists('civicrm_event', 'default_fee_id') || !CRM_Core_DAO::checkFieldExists('civicrm_event', 'default_discount_id') || !CRM_Core_DAO::checkFieldExists('civicrm_event', 'thankyou_title') || !CRM_Core_DAO::checkFieldExists('civicrm_event', 'thankyou_text') || !CRM_Core_DAO::checkFieldExists('civicrm_event', 'thankyou_footer_text') || !CRM_Core_DAO::checkFieldExists('civicrm_event', 'is_pay_later') || !CRM_Core_DAO::checkFieldExists('civicrm_event', 'pay_later_text') || !CRM_Core_DAO::checkFieldExists('civicrm_event', 'pay_later_receipt') || !CRM_Core_DAO::checkFieldExists('civicrm_event', 'is_multiple_registrations')) {
// db looks to have stuck somewhere between 2.1 & 2.2
$errorMessage .= ' Few important fields were found missing in some of the tables.';
return FALSE;
}
if ($this->checkVersion('2.1.103')) {
$this->setVersion('2.2');
} else {
return FALSE;
}
// update config defaults
$domain = new CRM_Core_DAO_Domain();
$domain->selectAdd();
$domain->selectAdd('config_backend');
$domain->find(TRUE);
if ($domain->config_backend) {
$defaults = unserialize($domain->config_backend);
// reset components
$defaults['enableComponents'] = array('CiviContribute', 'CiviPledge', 'CiviMember', 'CiviEvent', 'CiviMail');
$defaults['enableComponentIDs'] = array(1, 6, 2, 3, 4);
$defaults['moneyvalueformat'] = '%!i';
$defaults['fieldSeparator'] = ',';
$defaults['fatalErrorTemplate'] = 'CRM/common/fatal.tpl';
// serialise settings
CRM_Core_BAO_ConfigSetting::add($defaults);
}
return $this->checkVersion('2.2');
}
示例2: verifyPreDBState
function verifyPreDBState(&$errorMessage)
{
$config = CRM_Core_Config::singleton();
// Let's first update the config defaults
require_once "CRM/Core/DAO/Domain.php";
$domain = new CRM_Core_DAO_Domain();
$domain->selectAdd();
$domain->selectAdd('config_backend');
$domain->find(true);
if ($domain->config_backend) {
$defaults = unserialize($domain->config_backend);
// reset components
$defaults['enableComponents'] = array('CiviContribute', 'CiviPledge', 'CiviMember', 'CiviEvent', 'CiviMail');
$defaults['enableComponentIDs'] = array(1, 6, 2, 3, 4);
$defaults['moneyvalueformat'] = '%!i';
$defaults['fieldSeparator'] = ',';
$defaults['fatalErrorTemplate'] = 'CRM/common/fatal.tpl';
// update cms-version
if ($config->userFramework == 'Joomla') {
$defaults['userFrameworkVersion'] = '1.5';
if (class_exists('JVersion')) {
$version = new JVersion();
$defaults['userFrameworkVersion'] = $version->getShortVersion();
}
} else {
if ($config->userFramework == 'Drupal') {
$defaults['userFrameworkVersion'] = '6.3';
if (defined('VERSION')) {
$defaults['userFrameworkVersion'] = VERSION;
}
}
}
// serialise settings
require_once "CRM/Core/BAO/Setting.php";
CRM_Core_BAO_Setting::add($defaults);
$config = CRM_Core_Config::singleton();
}
// check if log file is writable
if (!is_writable($config->uploadDir . 'CiviCRM.log')) {
$errorMessage = ts('Log file CiviCRM.log is not writable. Make sure files directory is writable.', array(1 => $config->uploadDir));
return false;
}
$errorMessage = ts('Database check failed - the current database is not v2.0.');
$is20db = true;
// abort if partial upgraded db found.
if ($this->checkVersion('2.01') || $this->checkVersion('2.02') || $this->checkVersion('2.03')) {
$errorMessage = ts('Corrupt / Partial Upgraded database found. Looks like upgrade wizard failed to complete all the required steps to convert your database to v2.1. Please fix any errors and start the upgrade process again with a clean v2.0 database.');
return false;
}
// abort if already 2.1
if ($this->checkVersion('2.1')) {
$errorMessage = ts('Database check failed - looks like you have already upgraded to the latest version (v2.1) of the database.');
return false;
}
// check if 2.0 version
if (!$this->checkVersion('2.0')) {
$is20db = false;
}
// check if 2.0 tables exists
if (!CRM_Core_DAO::checkTableExists('civicrm_activity') || !CRM_Core_DAO::checkTableExists('civicrm_activity_assignment') || !CRM_Core_DAO::checkTableExists('civicrm_activity_target') || !CRM_Core_DAO::checkTableExists('civicrm_address') || !CRM_Core_DAO::checkTableExists('civicrm_address') || !CRM_Core_DAO::checkTableExists('civicrm_case') || !CRM_Core_DAO::checkTableExists('civicrm_case_activity') || !CRM_Core_DAO::checkTableExists('civicrm_component') || !CRM_Core_DAO::checkTableExists('civicrm_contribution_widget') || !CRM_Core_DAO::checkTableExists('civicrm_grant') || !CRM_Core_DAO::checkTableExists('civicrm_group_nesting') || !CRM_Core_DAO::checkTableExists('civicrm_group_organization') || !CRM_Core_DAO::checkTableExists('civicrm_loc_block') || !CRM_Core_DAO::checkTableExists('civicrm_openid') || !CRM_Core_DAO::checkTableExists('civicrm_openid_associations') || !CRM_Core_DAO::checkTableExists('civicrm_openid_nonces') || !CRM_Core_DAO::checkTableExists('civicrm_preferences_date') || !CRM_Core_DAO::checkTableExists('civicrm_tell_friend') || !CRM_Core_DAO::checkTableExists('civicrm_timezone') || !CRM_Core_DAO::checkTableExists('civicrm_worldregion')) {
// db is not 2.0
$errorMessage .= ' Few 2.0 tables were found missing.';
$is20db = false;
}
// check fields which MUST be present if a proper 2.0 db
if ($is20db) {
if (!CRM_Core_DAO::checkFieldExists('civicrm_activity', 'source_record_id') || !CRM_Core_DAO::checkFieldExists('civicrm_activity', 'activity_date_time') || !CRM_Core_DAO::checkFieldExists('civicrm_activity', 'status_id') || !CRM_Core_DAO::checkFieldExists('civicrm_contact', 'first_name') || !CRM_Core_DAO::checkFieldExists('civicrm_contact', 'last_name') || !CRM_Core_DAO::checkFieldExists('civicrm_contact', 'gender_id') || !CRM_Core_DAO::checkFieldExists('civicrm_contact', 'mail_to_household_id') || !CRM_Core_DAO::checkFieldExists('civicrm_contact', 'user_unique_id') || !CRM_Core_DAO::checkFieldExists('civicrm_contact', 'household_name') || !CRM_Core_DAO::checkFieldExists('civicrm_contact', 'organization_name') || !CRM_Core_DAO::checkFieldExists('civicrm_contribution', 'honor_type_id') || !CRM_Core_DAO::checkFieldExists('civicrm_contribution_page', 'is_pay_later') || !CRM_Core_DAO::checkFieldExists('civicrm_contribution_page', 'pay_later_text') || !CRM_Core_DAO::checkFieldExists('civicrm_country', 'region_id') || !CRM_Core_DAO::checkFieldExists('civicrm_custom_field', 'column_name') || !CRM_Core_DAO::checkFieldExists('civicrm_custom_field', 'option_group_id') || !CRM_Core_DAO::checkFieldExists('civicrm_custom_group', 'table_name') || !CRM_Core_DAO::checkFieldExists('civicrm_custom_group', 'is_multiple') || !CRM_Core_DAO::checkFieldExists('civicrm_domain', 'version') || !CRM_Core_DAO::checkFieldExists('civicrm_domain', 'loc_block_id') || !CRM_Core_DAO::checkFieldExists('civicrm_email', 'contact_id') || !CRM_Core_DAO::checkFieldExists('civicrm_email', 'location_type_id') || !CRM_Core_DAO::checkFieldExists('civicrm_email', 'is_billing') || !CRM_Core_DAO::checkFieldExists('civicrm_entity_tag', 'contact_id') || !CRM_Core_DAO::checkFieldExists('civicrm_event', 'participant_listing_id') || !CRM_Core_DAO::checkFieldExists('civicrm_event', 'loc_block_id') || !CRM_Core_DAO::checkFieldExists('civicrm_event', 'receipt_text') || !CRM_Core_DAO::checkFieldExists('civicrm_event_page', 'is_pay_later') || !CRM_Core_DAO::checkFieldExists('civicrm_event_page', 'pay_later_text') || !CRM_Core_DAO::checkFieldExists('civicrm_financial_trxn', 'contribution_id') || !CRM_Core_DAO::checkFieldExists('civicrm_im', 'contact_id') || !CRM_Core_DAO::checkFieldExists('civicrm_im', 'location_type_id') || !CRM_Core_DAO::checkFieldExists('civicrm_membership_payment', 'contribution_id') || !CRM_Core_DAO::checkFieldExists('civicrm_membership_type', 'receipt_text_signup') || !CRM_Core_DAO::checkFieldExists('civicrm_membership_type', 'receipt_text_renewal') || !CRM_Core_DAO::checkFieldExists('civicrm_option_value', 'component_id') || !CRM_Core_DAO::checkFieldExists('civicrm_participant_payment', 'contribution_id') || !CRM_Core_DAO::checkFieldExists('civicrm_payment_processor', 'url_api') || !CRM_Core_DAO::checkFieldExists('civicrm_payment_processor_type', 'url_api_default') || !CRM_Core_DAO::checkFieldExists('civicrm_phone', 'contact_id') || !CRM_Core_DAO::checkFieldExists('civicrm_phone', 'location_type_id') || !CRM_Core_DAO::checkFieldExists('civicrm_uf_match', 'uf_name')) {
// db looks to have stuck somewhere between 2.0 & 2.1
$errorMessage .= ' Few important fields were found missing in some of the tables.';
$is20db = false;
}
}
if (!$is20db) {
// check if the db is 2.1
if (CRM_Core_DAO::checkTableExists('civicrm_cache') && CRM_Core_DAO::checkFieldExists('civicrm_cache', 'group_name') && CRM_Core_DAO::checkFieldExists('civicrm_cache', 'created_date') && CRM_Core_DAO::checkFieldExists('civicrm_cache', 'expired_date') && CRM_Core_DAO::checkTableExists('civicrm_group_contact_cache') && CRM_Core_DAO::checkFieldExists('civicrm_group_contact_cache', 'contact_id') && CRM_Core_DAO::checkTableExists('civicrm_menu') && CRM_Core_DAO::checkFieldExists('civicrm_menu', 'path_arguments') && CRM_Core_DAO::checkFieldExists('civicrm_menu', 'is_exposed') && CRM_Core_DAO::checkFieldExists('civicrm_menu', 'page_type') && CRM_Core_DAO::checkTableExists('civicrm_discount') && CRM_Core_DAO::checkFieldExists('civicrm_discount', 'option_group_id') && CRM_Core_DAO::checkFieldExists('civicrm_discount', 'end_date')) {
$errorMessage = ts('Database check failed - it looks like you have already upgraded to the latest version (v2.1) of the database.');
}
return false;
}
// check tables which should not exist for v2.x
if (CRM_Core_DAO::checkTableExists('civicrm_custom_option') || CRM_Core_DAO::checkTableExists('civicrm_custom_value') || CRM_Core_DAO::checkTableExists('civicrm_email_history') || CRM_Core_DAO::checkTableExists('civicrm_geo_coord') || CRM_Core_DAO::checkTableExists('civicrm_individual') || CRM_Core_DAO::checkTableExists('civicrm_location') || CRM_Core_DAO::checkTableExists('civicrm_meeting') || CRM_Core_DAO::checkTableExists('civicrm_organization') || CRM_Core_DAO::checkTableExists('civicrm_phonecall') || CRM_Core_DAO::checkTableExists('civicrm_sms_history') || CRM_Core_DAO::checkTableExists('civicrm_validation')) {
// table(s) found in the db which are no longer required
// for v2.x, though would not do any harm it's recommended
// to remove them.
CRM_Core_Session::setStatus(ts("Table(s) found in your db which are no longer required for v2.x, though would not do any harm it's recommended to remove them"));
}
// show error if any of the tables, use 'MyISAM' storage engine.
// just check the first 10 civicrm tables, rather than checking all 106!
if (CRM_Core_DAO::isDBMyISAM(10)) {
$errorMessage = ts('Your database is configured to use the MyISAM database engine. CiviCRM requires InnoDB. You will need to convert any MyISAM tables in your database to InnoDB before proceeding.');
return false;
}
// check FK constraint names are in valid format.
if (!CRM_Core_DAO::checkFKConstraintInFormat('civicrm_contact', 'domain_id') || !CRM_Core_DAO::checkFKConstraintInFormat('civicrm_contribution_page', 'domain_id') || !CRM_Core_DAO::checkFKConstraintInFormat('civicrm_contribution_recur', 'domain_id') || !CRM_Core_DAO::checkFKConstraintInFormat('civicrm_membership_status', 'domain_id') || !CRM_Core_DAO::checkFKConstraintInFormat('civicrm_contribution', 'contact_id') || !CRM_Core_DAO::checkFKConstraintInFormat('civicrm_contribution', 'contribution_type_id')) {
$errorMessage = ts('Database consistency check failed. FK constraint names not in the required format. Please rebuild your 2.0 database to ensure schema integrity.');
return false;
}
return true;
}
示例3: retrieve
/**
* Function to retrieve the settings values from db
*
* @return array $defaults
* @static
*/
static function retrieve(&$defaults)
{
require_once "CRM/Core/DAO/Domain.php";
$domain = new CRM_Core_DAO_Domain();
$domain->selectAdd();
if (CRM_Utils_Array::value('q', $_GET) == 'civicrm/upgrade') {
$domain->selectAdd('config_backend');
} else {
$domain->selectAdd('config_backend, locales');
}
$domain->id = CRM_Core_Config::domainID();
$domain->find(true);
if ($domain->config_backend) {
$defaults = unserialize($domain->config_backend);
// calculate month var
$defaults['dateformatMonthVar'] = strstr($defaults['dateformatQfDate'], '%m') ? 'm' : (strstr($defaults['dateformatQfDate'], '%b') ? 'M' : (strstr($defaults['dateformatQfDate'], '%B') ? 'F' : null));
//calculate month var for Date Time
$defaults['datetimeformatMonthVar'] = strstr($defaults['dateformatQfDatetime'], '%m') ? 'm' : (strstr($defaults['dateformatQfDatetime'], '%b') ? 'M' : (strstr($defaults['dateformatQfDatetime'], '%B') ? 'F' : null));
//calculate hour var for Date Time
$defaults['datetimeformatHourVar'] = strstr($defaults['dateformatQfDatetime'], '%I') ? 'h' : (strstr($defaults['dateformatQfDatetime'], '%l') ? 'g' : null);
// set proper monetary formatting, falling back to en_US and C (CRM-2782)
setlocale(LC_MONETARY, $defaults['lcMonetary'] . '.utf8', $defaults['lcMonetary'], 'en_US.utf8', 'en_US', 'C');
$skipVars = array('dsn', 'templateCompileDir', 'userFrameworkDSN', 'userFrameworkBaseURL', 'userFrameworkClass', 'userHookClass', 'userPermissionClass', 'userFrameworkURLVar', 'qfKey', 'gettextResourceDir', 'cleanURL');
foreach ($skipVars as $skip) {
if (array_key_exists($skip, $defaults)) {
unset($defaults[$skip]);
}
}
// since language field won't be present before upgrade.
if (CRM_Utils_Array::value('q', $_GET) == 'civicrm/upgrade') {
return;
}
// are we in a multi-language setup?
$multiLang = $domain->locales ? true : false;
// set the current language
$lcMessages = null;
$session =& CRM_Core_Session::singleton();
// on multi-lang sites based on request and civicrm_uf_match
if ($multiLang) {
require_once 'CRM/Utils/Request.php';
$lcMessagesRequest = CRM_Utils_Request::retrieve('lcMessages', 'String', $this);
$languageLimit = array();
if (array_key_exists('languageLimit', $defaults) && is_array($defaults['languageLimit'])) {
$languageLimit = $defaults['languageLimit'];
}
if (in_array($lcMessagesRequest, array_keys($languageLimit))) {
$lcMessages = $lcMessagesRequest;
} else {
$lcMessagesRequest = null;
}
if (!$lcMessagesRequest) {
$lcMessagesSession = $session->get('lcMessages');
if (in_array($lcMessagesSession, array_keys($languageLimit))) {
$lcMessages = $lcMessagesSession;
} else {
$lcMessagesSession = null;
}
}
if ($lcMessagesRequest) {
require_once 'CRM/Core/DAO/UFMatch.php';
$ufm = new CRM_Core_DAO_UFMatch();
$ufm->contact_id = $session->get('userID');
if ($ufm->find(true)) {
$ufm->language = $lcMessages;
$ufm->save();
}
$session->set('lcMessages', $lcMessages);
}
if (!$lcMessages and $session->get('userID')) {
require_once 'CRM/Core/DAO/UFMatch.php';
$ufm = new CRM_Core_DAO_UFMatch();
$ufm->contact_id = $session->get('userID');
if ($ufm->find(true) && in_array($ufm->language, array_keys($languageLimit))) {
$lcMessages = $ufm->language;
}
$session->set('lcMessages', $lcMessages);
}
}
// if unset, try to inherit the language from the hosting CMS
if ($lcMessages === null) {
require_once 'CRM/Utils/System.php';
$lcMessages = CRM_Utils_System::getUFLocale();
require_once 'CRM/Core/BAO/CustomOption.php';
if ($domain->locales and !in_array($lcMessages, explode(CRM_Core_BAO_CustomOption::VALUE_SEPERATOR, $domain->locales))) {
$lcMessages = null;
}
}
if ($lcMessages) {
// update config lcMessages - CRM-5027 fixed.
$defaults['lcMessages'] = $lcMessages;
} else {
// if a single-lang site or the above didn't yield a result, use default
$lcMessages = $defaults['lcMessages'];
}
//.........这里部分代码省略.........
示例4: retrieve
/**
* Retrieve the settings values from db.
*
* @param $defaults
*
* @return array
*/
public static function retrieve(&$defaults)
{
$domain = new CRM_Core_DAO_Domain();
//we are initializing config, really can't use, CRM-7863
$urlVar = 'q';
if (defined('CIVICRM_UF') && CIVICRM_UF == 'Joomla') {
$urlVar = 'task';
}
if (CRM_Core_Config::isUpgradeMode()) {
$domain->selectAdd('config_backend');
} elseif (CRM_Utils_Array::value($urlVar, $_GET) == 'admin/modules/list/confirm') {
$domain->selectAdd('config_backend', 'locales');
} else {
$domain->selectAdd('config_backend, locales, locale_custom_strings');
}
$domain->id = CRM_Core_Config::domainID();
$domain->find(TRUE);
if ($domain->config_backend) {
$defaults = unserialize($domain->config_backend);
if ($defaults === FALSE || !is_array($defaults)) {
$defaults = array();
return FALSE;
}
$skipVars = self::skipVars();
foreach ($skipVars as $skip) {
if (array_key_exists($skip, $defaults)) {
unset($defaults[$skip]);
}
}
// check if there are any locale strings
if ($domain->locale_custom_strings) {
$defaults['localeCustomStrings'] = unserialize($domain->locale_custom_strings);
} else {
$defaults['localeCustomStrings'] = NULL;
}
// are we in a multi-language setup?
$multiLang = $domain->locales ? TRUE : FALSE;
// set the current language
$lcMessages = NULL;
$session = CRM_Core_Session::singleton();
// on multi-lang sites based on request and civicrm_uf_match
if ($multiLang) {
$lcMessagesRequest = CRM_Utils_Request::retrieve('lcMessages', 'String', $this);
$languageLimit = array();
if (array_key_exists('languageLimit', $defaults) && is_array($defaults['languageLimit'])) {
$languageLimit = $defaults['languageLimit'];
}
if (in_array($lcMessagesRequest, array_keys($languageLimit))) {
$lcMessages = $lcMessagesRequest;
//CRM-8559, cache navigation do not respect locale if it is changed, so reseting cache.
CRM_Core_BAO_Cache::deleteGroup('navigation');
} else {
$lcMessagesRequest = NULL;
}
if (!$lcMessagesRequest) {
$lcMessagesSession = $session->get('lcMessages');
if (in_array($lcMessagesSession, array_keys($languageLimit))) {
$lcMessages = $lcMessagesSession;
} else {
$lcMessagesSession = NULL;
}
}
if ($lcMessagesRequest) {
$ufm = new CRM_Core_DAO_UFMatch();
$ufm->contact_id = $session->get('userID');
if ($ufm->find(TRUE)) {
$ufm->language = $lcMessages;
$ufm->save();
}
$session->set('lcMessages', $lcMessages);
}
if (!$lcMessages and $session->get('userID')) {
$ufm = new CRM_Core_DAO_UFMatch();
$ufm->contact_id = $session->get('userID');
if ($ufm->find(TRUE) && in_array($ufm->language, array_keys($languageLimit))) {
$lcMessages = $ufm->language;
}
$session->set('lcMessages', $lcMessages);
}
}
global $dbLocale;
// try to inherit the language from the hosting CMS
if (!empty($defaults['inheritLocale'])) {
// FIXME: On multilanguage installs, CRM_Utils_System::getUFLocale() in many cases returns nothing if $dbLocale is not set
$dbLocale = $multiLang ? "_{$defaults['lcMessages']}" : '';
$lcMessages = CRM_Utils_System::getUFLocale();
if ($domain->locales and !in_array($lcMessages, explode(CRM_Core_DAO::VALUE_SEPARATOR, $domain->locales))) {
$lcMessages = NULL;
}
}
if (empty($lcMessages)) {
//CRM-11993 - if a single-lang site, use default
$lcMessages = CRM_Utils_Array::value('lcMessages', $defaults);
//.........这里部分代码省略.........
示例5: retrieve
/**
* Retrieve the settings values from db.
*
* @param $defaults
*
* @return array
*/
public static function retrieve(&$defaults)
{
$domain = new CRM_Core_DAO_Domain();
//we are initializing config, really can't use, CRM-7863
$urlVar = 'q';
if (defined('CIVICRM_UF') && CIVICRM_UF == 'Joomla') {
$urlVar = 'task';
}
if (CRM_Core_Config::isUpgradeMode()) {
$domain->selectAdd('config_backend');
} else {
$domain->selectAdd('config_backend, locales');
}
$domain->id = CRM_Core_Config::domainID();
$domain->find(TRUE);
if ($domain->config_backend) {
$defaults = unserialize($domain->config_backend);
if ($defaults === FALSE || !is_array($defaults)) {
$defaults = array();
return FALSE;
}
$skipVars = self::skipVars();
foreach ($skipVars as $skip) {
if (array_key_exists($skip, $defaults)) {
unset($defaults[$skip]);
}
}
CRM_Core_BAO_ConfigSetting::applyLocale(Civi::settings($domain->id), $domain->locales);
}
}
示例6: upgrade
function upgrade($rev)
{
$upgrade = new CRM_Upgrade_Form();
//Run the SQL file
$upgrade->processSQL($rev);
// fix for CRM-5162
// we need to encrypt all smtpPasswords if present
require_once "CRM/Core/DAO/Preferences.php";
$mailingDomain = new CRM_Core_DAO_Preferences();
$mailingDomain->find();
while ($mailingDomain->fetch()) {
if ($mailingDomain->mailing_backend) {
$values = unserialize($mailingDomain->mailing_backend);
if (isset($values['smtpPassword'])) {
require_once 'CRM/Utils/Crypt.php';
$values['smtpPassword'] = CRM_Utils_Crypt::encrypt($values['smtpPassword']);
$mailingDomain->mailing_backend = serialize($values);
$mailingDomain->save();
}
}
}
require_once "CRM/Core/DAO/Domain.php";
$domain = new CRM_Core_DAO_Domain();
$domain->selectAdd();
$domain->selectAdd('config_backend');
$domain->find(true);
if ($domain->config_backend) {
$defaults = unserialize($domain->config_backend);
if ($dateFormat = CRM_Utils_Array::value('dateformatQfDate', $defaults)) {
$dateFormatArray = explode(" ", $dateFormat);
//replace new date format based on previous month format
//%b month name [abbreviated]
//%B full month name ('January'..'December')
//%m decimal number, 0-padded ('01'..'12')
if ($dateFormat == '%b %d %Y') {
$defaults['dateInputFormat'] = 'mm/dd/yy';
} else {
if ($dateFormat == '%d-%b-%Y') {
$defaults['dateInputFormat'] = 'dd-mm-yy';
} else {
if (in_array('%b', $dateFormatArray)) {
$defaults['dateInputFormat'] = 'M d, yy';
} else {
if (in_array('%B', $dateFormatArray)) {
$defaults['dateInputFormat'] = 'MM d, yy';
} else {
$defaults['dateInputFormat'] = 'mm/dd/yy';
}
}
}
}
}
// %p - lowercase ante/post meridiem ('am', 'pm')
// %P - uppercase ante/post meridiem ('AM', 'PM')
if ($dateTimeFormat = CRM_Utils_Array::value('dateformatQfDatetime', $defaults)) {
$defaults['timeInputFormat'] = 2;
$dateTimeFormatArray = explode(" ", $dateFormat);
if (in_array('%P', $dateTimeFormatArray) || in_array('%p', $dateTimeFormatArray)) {
$defaults['timeInputFormat'] = 1;
}
unset($defaults['dateformatQfDatetime']);
}
unset($defaults['dateformatQfDate']);
unset($defaults['dateformatTime']);
require_once "CRM/Core/BAO/Setting.php";
CRM_Core_BAO_Setting::add($defaults);
}
$sql = "SELECT id, form_values FROM civicrm_report_instance";
$instDAO = CRM_Core_DAO::executeQuery($sql);
while ($instDAO->fetch()) {
$fromVal = @unserialize($instDAO->form_values);
foreach ((array) $fromVal as $key => $value) {
if (strstr($key, '_relative')) {
$elementName = substr($key, 0, strlen($key) - strlen('_relative'));
$fromNamekey = $elementName . '_from';
$toNamekey = $elementName . '_to';
$fromNameVal = $fromVal[$fromNamekey];
$toNameVal = $fromVal[$toNamekey];
//check 'choose date range' is set
if ($value == '0') {
if (CRM_Utils_Date::isDate($fromNameVal)) {
$fromDate = CRM_Utils_Date::setDateDefaults(CRM_Utils_Date::format($fromNameVal));
$fromNameVal = $fromDate[0];
} else {
$fromNameVal = '';
}
if (CRM_Utils_Date::isDate($toNameVal)) {
$toDate = CRM_Utils_Date::setDateDefaults(CRM_Utils_Date::format($toNameVal));
$toNameVal = $toDate[0];
} else {
$toNameVal = '';
}
} else {
$fromNameVal = '';
$toNameVal = '';
}
$fromVal[$fromNamekey] = $fromNameVal;
$fromVal[$toNamekey] = $toNameVal;
continue;
}
//.........这里部分代码省略.........
示例7: REPLACE
function upgrade_2_2_7($rev)
{
$upgrade = new CRM_Upgrade_Form();
$upgrade->processSQL($rev);
$sql = "UPDATE civicrm_report_instance \n SET form_values = REPLACE(form_values,'#',';') ";
CRM_Core_DAO::executeQuery($sql, CRM_Core_DAO::$_nullArray);
// make report component enabled by default
require_once "CRM/Core/DAO/Domain.php";
$domain = new CRM_Core_DAO_Domain();
$domain->selectAdd();
$domain->selectAdd('config_backend');
$domain->find(true);
if ($domain->config_backend) {
$defaults = unserialize($domain->config_backend);
if (is_array($defaults['enableComponents'])) {
$compId = CRM_Core_DAO::singleValueQuery("SELECT id FROM civicrm_component WHERE name = 'CiviReport'");
if ($compId) {
$defaults['enableComponents'][] = 'CiviReport';
$defaults['enableComponentIDs'][] = $compId;
require_once "CRM/Core/BAO/Setting.php";
CRM_Core_BAO_Setting::add($defaults);
}
}
}
}
示例8: retrieve
/**
* Function to retrieve the settings values from db
*
* @return array $defaults
* @static
*/
static function retrieve(&$defaults)
{
require_once "CRM/Core/DAO/Domain.php";
$domain = new CRM_Core_DAO_Domain();
$domain->selectAdd();
if (CRM_Utils_Array::value('q', $_GET) == 'civicrm/upgrade') {
$domain->selectAdd('config_backend');
} else {
$domain->selectAdd('config_backend, locales, locale_custom_strings');
}
$domain->id = CRM_Core_Config::domainID();
$domain->find(true);
if ($domain->config_backend) {
$defaults = unserialize($domain->config_backend);
if ($defaults === false || !is_array($defaults)) {
$defaults = array();
return;
}
$skipVars = array('dsn', 'templateCompileDir', 'userFrameworkDSN', 'userFrameworkBaseURL', 'userFrameworkClass', 'userHookClass', 'userPermissionClass', 'userFrameworkURLVar', 'newBaseURL', 'newBaseDir', 'newSiteName', 'configAndLogDir', 'qfKey', 'gettextResourceDir', 'cleanURL', 'locale_custom_strings', 'localeCustomStrings');
foreach ($skipVars as $skip) {
if (array_key_exists($skip, $defaults)) {
unset($defaults[$skip]);
}
}
// since language field won't be present before upgrade.
if (CRM_Utils_Array::value('q', $_GET) == 'civicrm/upgrade') {
return;
}
// check if there are any locale strings
if ($domain->locale_custom_strings) {
$defaults['localeCustomStrings'] = unserialize($domain->locale_custom_strings);
} else {
$defaults['localeCustomStrings'] = null;
}
// are we in a multi-language setup?
$multiLang = $domain->locales ? true : false;
// set the current language
$lcMessages = null;
$session = CRM_Core_Session::singleton();
// for logging purposes, pass the userID to the db
if ($session->get('userID')) {
CRM_Core_DAO::executeQuery('SET @civicrm_user_id = %1', array(1 => array($session->get('userID'), 'Integer')));
}
// on multi-lang sites based on request and civicrm_uf_match
if ($multiLang) {
require_once 'CRM/Utils/Request.php';
$lcMessagesRequest = CRM_Utils_Request::retrieve('lcMessages', 'String', $this);
$languageLimit = array();
if (array_key_exists('languageLimit', $defaults) && is_array($defaults['languageLimit'])) {
$languageLimit = $defaults['languageLimit'];
}
if (in_array($lcMessagesRequest, array_keys($languageLimit))) {
$lcMessages = $lcMessagesRequest;
} else {
$lcMessagesRequest = null;
}
if (!$lcMessagesRequest) {
$lcMessagesSession = $session->get('lcMessages');
if (in_array($lcMessagesSession, array_keys($languageLimit))) {
$lcMessages = $lcMessagesSession;
} else {
$lcMessagesSession = null;
}
}
if ($lcMessagesRequest) {
require_once 'CRM/Core/DAO/UFMatch.php';
$ufm = new CRM_Core_DAO_UFMatch();
$ufm->contact_id = $session->get('userID');
if ($ufm->find(true)) {
$ufm->language = $lcMessages;
$ufm->save();
}
$session->set('lcMessages', $lcMessages);
}
if (!$lcMessages and $session->get('userID')) {
require_once 'CRM/Core/DAO/UFMatch.php';
$ufm = new CRM_Core_DAO_UFMatch();
$ufm->contact_id = $session->get('userID');
if ($ufm->find(true) && in_array($ufm->language, array_keys($languageLimit))) {
$lcMessages = $ufm->language;
}
$session->set('lcMessages', $lcMessages);
}
}
global $dbLocale;
// if unset and the install is so configured, try to inherit the language from the hosting CMS
if ($lcMessages === null and CRM_Utils_Array::value('inheritLocale', $defaults)) {
// FIXME: On multilanguage installs, CRM_Utils_System::getUFLocale() in many cases returns nothing if $dbLocale is not set
$dbLocale = $multiLang ? "_{$defaults['lcMessages']}" : '';
require_once 'CRM/Utils/System.php';
$lcMessages = CRM_Utils_System::getUFLocale();
require_once 'CRM/Core/BAO/CustomOption.php';
if ($domain->locales and !in_array($lcMessages, explode(CRM_Core_BAO_CustomOption::VALUE_SEPERATOR, $domain->locales))) {
$lcMessages = null;
//.........这里部分代码省略.........