diff --git a/civicrm.php b/civicrm.php index 9d5c5c5a893b2780dc0b01db77d53d2aade4e2f4..48df7cfaa06addee3498bc72e83bfbdd1c023757 100644 --- a/civicrm.php +++ b/civicrm.php @@ -2,7 +2,7 @@ /* Plugin Name: CiviCRM Description: CiviCRM - Growing and Sustaining Relationships -Version: 5.17.0 +Version: 5.17.4 Author: CiviCRM LLC Author URI: https://civicrm.org/ Plugin URI: https://wiki.civicrm.org/confluence/display/CRMDOC/Installing+CiviCRM+for+WordPress diff --git a/civicrm/CRM/ACL/Form/WordPress/Permissions.php b/civicrm/CRM/ACL/Form/WordPress/Permissions.php index bad293c934c17f1d0567697ce7abc3b935b3501e..65191fb9793aed95be6ef1190364b5fd59b5a109 100644 --- a/civicrm/CRM/ACL/Form/WordPress/Permissions.php +++ b/civicrm/CRM/ACL/Form/WordPress/Permissions.php @@ -54,7 +54,7 @@ class CRM_ACL_Form_WordPress_Permissions extends CRM_Core_Form { } foreach ($wp_roles->role_names as $role => $name) { // Don't show the permissions options for administrator, as they have all permissions - if ( is_multisite() OR $role !== 'administrator') { + if ($role !== 'administrator') { $roleObj = $wp_roles->get_role($role); if (!empty($roleObj->capabilities)) { foreach ($roleObj->capabilities as $ckey => $cname) { diff --git a/civicrm/CRM/Campaign/Form/Campaign.php b/civicrm/CRM/Campaign/Form/Campaign.php index 813d34005586eaef82181d552c1bdd3dac01e8c2..1723cefa932658a690ef5ce374b7fb888378f03b 100644 --- a/civicrm/CRM/Campaign/Form/Campaign.php +++ b/civicrm/CRM/Campaign/Form/Campaign.php @@ -165,6 +165,7 @@ class CRM_Campaign_Form_Campaign extends CRM_Core_Form { } public function buildQuickForm() { + $this->add('hidden', 'id', $this->_campaignId); if ($this->_action & CRM_Core_Action::DELETE) { $this->addButtons([ @@ -186,7 +187,6 @@ class CRM_Campaign_Form_Campaign extends CRM_Core_Form { //lets assign custom data type and subtype. $this->assign('customDataType', 'Campaign'); $this->assign('entityID', $this->_campaignId); - $this->assign('id', $this->_campaignId); $this->assign('customDataSubType', CRM_Utils_Array::value('campaign_type_id', $this->_values)); $attributes = CRM_Core_DAO::getAttribute('CRM_Campaign_DAO_Campaign'); @@ -292,14 +292,18 @@ class CRM_Campaign_Form_Campaign extends CRM_Core_Form { $session = CRM_Core_Session::singleton(); $params = $this->controller->exportValues($this->_name); - if (isset($this->_campaignId)) { + // To properly save the DAO we need to ensure we don't have a blank id key passed through. + if (empty($params['id'])) { + unset($params['id']); + } + if (!empty($params['id'])) { if ($this->_action & CRM_Core_Action::DELETE) { - CRM_Campaign_BAO_Campaign::del($this->_campaignId); + CRM_Campaign_BAO_Campaign::del($params['id']); CRM_Core_Session::setStatus(ts('Campaign has been deleted.'), ts('Record Deleted'), 'success'); $session->replaceUserContext(CRM_Utils_System::url('civicrm/campaign', 'reset=1&subPage=campaign')); return; } - $params['id'] = $this->_campaignId; + $this->_campaignId = $params['id']; } else { $params['created_id'] = $session->get('userID'); @@ -328,7 +332,7 @@ class CRM_Campaign_Form_Campaign extends CRM_Core_Form { public static function submit($params = [], $form) { $groups = []; - if (is_array($params['includeGroups'])) { + if (!empty($params['includeGroups']) && is_array($params['includeGroups'])) { foreach ($params['includeGroups'] as $key => $id) { if ($id) { $groups['include'][] = $id; @@ -355,6 +359,7 @@ class CRM_Campaign_Form_Campaign extends CRM_Core_Form { $form->_campaignId, 'Campaign' ); + // dev/core#1067 Clean Money before passing onto BAO to do the create. $params['goal_revenue'] = CRM_Utils_Rule::cleanMoney($params['goal_revenue']); $result = civicrm_api3('Campaign', 'create', $params); diff --git a/civicrm/CRM/Contact/BAO/Query.php b/civicrm/CRM/Contact/BAO/Query.php index 7a6b045758774cedddb9442314c96b9bf647d5a4..e7fca08a8d930e7307f193061bd577573b176651 100644 --- a/civicrm/CRM/Contact/BAO/Query.php +++ b/civicrm/CRM/Contact/BAO/Query.php @@ -566,7 +566,8 @@ class CRM_Contact_BAO_Query { $this->_whereTables = $this->_tables; $this->selectClause($apiEntity); - $this->_whereClause = $this->whereClause($apiEntity); + $isForcePrimaryOnly = !empty($apiEntity); + $this->_whereClause = $this->whereClause($isForcePrimaryOnly); if (array_key_exists('civicrm_contribution', $this->_whereTables)) { $component = 'contribution'; } @@ -1808,9 +1809,11 @@ class CRM_Contact_BAO_Query { * Get the where clause for a single field. * * @param array $values - * @param string $apiEntity + * @param bool $isForcePrimaryOnly + * + * @throws \CRM_Core_Exception */ - public function whereClauseSingle(&$values, $apiEntity = NULL) { + public function whereClauseSingle(&$values, $isForcePrimaryOnly = FALSE) { if ($this->isARelativeDateField($values[0])) { $this->buildRelativeDateQuery($values); return; @@ -1886,7 +1889,7 @@ class CRM_Contact_BAO_Query { case 'email': case 'email_id': - $this->email($values, $apiEntity); + $this->email($values, $isForcePrimaryOnly); return; case 'phone_numeric': @@ -2055,11 +2058,12 @@ class CRM_Contact_BAO_Query { /** * Given a list of conditions in params generate the required where clause. * - * @param string $apiEntity + * @param bool $isForcePrimaryEmailOnly * * @return string + * @throws \CRM_Core_Exception */ - public function whereClause($apiEntity = NULL) { + public function whereClause($isForcePrimaryEmailOnly = NULL) { $this->_where[0] = []; $this->_qill[0] = []; @@ -2086,7 +2090,7 @@ class CRM_Contact_BAO_Query { ]); } else { - $this->whereClauseSingle($this->_params[$id], $apiEntity); + $this->whereClauseSingle($this->_params[$id], $isForcePrimaryEmailOnly); } } @@ -3558,26 +3562,29 @@ WHERE $smartGroupClause * Where / qill clause for email * * @param array $values - * @param string $apiEntity + * @param string $isForcePrimaryOnly + * + * @throws \CRM_Core_Exception */ - protected function email(&$values, $apiEntity) { + protected function email(&$values, $isForcePrimaryOnly) { list($name, $op, $value, $grouping, $wildcard) = $values; $this->_tables['civicrm_email'] = $this->_whereTables['civicrm_email'] = 1; // CRM-18147: for Contact's GET API, email fieldname got appended with its entity as in {$apiEntiy}_{$name} // so following code is use build whereClause for contact's primart email id - if (!empty($apiEntity)) { - $dataType = 'String'; - if ($name == 'email_id') { - $dataType = 'Integer'; - $name = 'id'; - } - + if (!empty($isForcePrimaryOnly)) { $this->_where[$grouping][] = self::buildClause('civicrm_email.is_primary', '=', 1, 'Integer'); - $this->_where[$grouping][] = self::buildClause("civicrm_email.$name", $op, $value, $dataType); + } + // @todo - this should come from the $this->_fields array + $dbName = $name === 'email_id' ? 'id' : $name; + + if (is_array($value) || $name === 'email_id') { + $this->_qill[$grouping][] = $this->getQillForField($name, $value, $op); + $this->_where[$grouping][] = self::buildClause('civicrm_email.' . $dbName, $op, $value, 'String'); return; } + // Is this ever hit now? Ideally ensure always an array & handle above. $n = trim($value); if ($n) { if (substr($n, 0, 1) == '"' && @@ -7049,4 +7056,22 @@ AND displayRelType.is_active = 1 return $statuses; } + /** + * Get the qill value for the field. + * + * @param $name + * @param array|int|string $value + * @param $op + * + * @return string + */ + protected function getQillForField($name, $value, $op): string { + list($qillop, $qillVal) = CRM_Contact_BAO_Query::buildQillForFieldValue(NULL, $name, $value, $op); + return (string) ts("%1 %2 %3", [ + 1 => ts('Email'), + 2 => $qillop, + 3 => $qillVal, + ]); + } + } diff --git a/civicrm/CRM/Core/BAO/Dashboard.php b/civicrm/CRM/Core/BAO/Dashboard.php index 8eef1432321fb40c383683ca6df78d6188f518c4..8b61cf0c0d6605828586d26ce3dd2e54ea249c3d 100644 --- a/civicrm/CRM/Core/BAO/Dashboard.php +++ b/civicrm/CRM/Core/BAO/Dashboard.php @@ -109,7 +109,6 @@ class CRM_Core_BAO_Dashboard extends CRM_Core_DAO_Dashboard { 'contact_id' => $contactID, 'is_active' => 1, 'dashboard_id.is_active' => 1, - 'dashboard_id.domain_id' => CRM_Core_Config::domainID(), 'options' => ['sort' => 'weight', 'limit' => 0], 'return' => [ 'id', @@ -144,7 +143,7 @@ class CRM_Core_BAO_Dashboard extends CRM_Core_DAO_Dashboard { // If empty, then initialize default dashlets for this user. if (!$results['count']) { // They may just have disabled all their dashlets. Check if any records exist for this contact. - if (!civicrm_api3('DashboardContact', 'getcount', ['contact_id' => $contactID, 'dashboard_id.domain_id' => CRM_Core_Config::domainID()])) { + if (!civicrm_api3('DashboardContact', 'getcount', ['contact_id' => $contactID])) { $dashlets = self::initializeDashlets(); } } @@ -389,13 +388,7 @@ class CRM_Core_BAO_Dashboard extends CRM_Core_DAO_Dashboard { $dashlet = new CRM_Core_DAO_Dashboard(); if (!$dashboardID) { - - // Assign domain before search to allow identical dashlets in different domains. - if (empty($params['domain_id'])) { - $dashlet->domain_id = CRM_Core_Config::domainID(); - } - - // Try and find an existing dashlet - it will be updated if found. + // check url is same as exiting entries, if yes just update existing if (!empty($params['name'])) { $dashlet->name = CRM_Utils_Array::value('name', $params); $dashlet->find(TRUE); @@ -404,7 +397,9 @@ class CRM_Core_BAO_Dashboard extends CRM_Core_DAO_Dashboard { $dashlet->url = CRM_Utils_Array::value('url', $params); $dashlet->find(TRUE); } - + if (empty($params['domain_id'])) { + $dashlet->domain_id = CRM_Core_Config::domainID(); + } } else { $dashlet->id = $dashboardID; diff --git a/civicrm/CRM/Core/BAO/Domain.php b/civicrm/CRM/Core/BAO/Domain.php index 78460afdc42c7cdc0424538e16b5709d469b6090..d4ccd6c9d1d021bdc0322668a0dc36121554e067 100644 --- a/civicrm/CRM/Core/BAO/Domain.php +++ b/civicrm/CRM/Core/BAO/Domain.php @@ -127,12 +127,10 @@ class CRM_Core_BAO_Domain extends CRM_Core_DAO_Domain { * domain */ public static function edit(&$params, &$id) { - CRM_Utils_Hook::pre('edit', 'Domain', CRM_Utils_Array::value('id', $params), $params); $domain = new CRM_Core_DAO_Domain(); $domain->id = $id; $domain->copyValues($params); $domain->save(); - CRM_Utils_Hook::post('edit', 'Domain', $domain->id, $domain); return $domain; } @@ -145,12 +143,9 @@ class CRM_Core_BAO_Domain extends CRM_Core_DAO_Domain { * domain */ public static function create($params) { - $hook = empty($params['id']) ? 'create' : 'edit'; - CRM_Utils_Hook::pre($hook, 'Domain', CRM_Utils_Array::value('id', $params), $params); $domain = new CRM_Core_DAO_Domain(); $domain->copyValues($params, TRUE); $domain->save(); - CRM_Utils_Hook::post($hook, 'Domain', $domain->id, $domain); return $domain; } diff --git a/civicrm/CRM/Core/BAO/Mapping.php b/civicrm/CRM/Core/BAO/Mapping.php index 404d0ffcfb0d8bd0d3f9f414213750a0a3eace3e..de2508f65bd8553233830de2ee4205ea0c2fb464 100644 --- a/civicrm/CRM/Core/BAO/Mapping.php +++ b/civicrm/CRM/Core/BAO/Mapping.php @@ -373,6 +373,7 @@ class CRM_Core_BAO_Mapping extends CRM_Core_DAO_Mapping { ); } + $contactTypes = CRM_Contact_BAO_ContactType::basicTypes(); $fields = self::getBasicFields($mappingType); // Unset groups, tags, notes for component export @@ -383,14 +384,21 @@ class CRM_Core_BAO_Mapping extends CRM_Core_DAO_Mapping { } if ($mappingType == 'Search Builder') { - //build the common contact fields array. + // Build the common contact fields array. $fields['Contact'] = []; - foreach ($fields['Individual'] as $key => $value) { - if (!empty($fields['Household'][$key]) && !empty($fields['Organization'][$key])) { + foreach ($fields[$contactTypes[0]] as $key => $value) { + // If a field exists across all contact types, move it to the "Contact" selector + $ubiquitious = TRUE; + foreach ($contactTypes as $type) { + if (!isset($fields[$type][$key])) { + $ubiquitious = FALSE; + } + } + if ($ubiquitious) { $fields['Contact'][$key] = $value; - unset($fields['Organization'][$key], - $fields['Household'][$key], - $fields['Individual'][$key]); + foreach ($contactTypes as $type) { + unset($fields[$type][$key]); + } } } if (array_key_exists('note', $fields['Contact'])) { @@ -429,7 +437,7 @@ class CRM_Core_BAO_Mapping extends CRM_Core_DAO_Mapping { } } - if (array_key_exists('related', $relatedMapperFields[$key])) { + if (isset($relatedMapperFields[$key]['related'])) { unset($relatedMapperFields[$key]['related']); } } @@ -451,18 +459,18 @@ class CRM_Core_BAO_Mapping extends CRM_Core_DAO_Mapping { // since we need a hierarchical list to display contact types & subtypes, // this is what we going to display in first selector - $contactTypes = CRM_Contact_BAO_ContactType::getSelectElements(FALSE, FALSE); + $contactTypeSelect = CRM_Contact_BAO_ContactType::getSelectElements(FALSE, FALSE); if ($mappingType == 'Search Builder') { - $contactTypes = ['Contact' => ts('Contacts')] + $contactTypes; + $contactTypeSelect = ['Contact' => ts('Contacts')] + $contactTypeSelect; } - $sel1 = ['' => ts('- select record type -')] + $contactTypes + $compArray; + $sel1 = ['' => ts('- select record type -')] + $contactTypeSelect + $compArray; foreach ($sel1 as $key => $sel) { if ($key) { // sort everything BUT the contactType which is sorted separately by // an initial commit of CRM-13278 (check ksort above) - if (!in_array($key, ['Individual', 'Household', 'Organization'])) { + if (!in_array($key, $contactTypes)) { asort($mapperFields[$key]); } $sel2[$key] = ['' => ts('- select field -')] + $mapperFields[$key]; diff --git a/civicrm/CRM/Core/Form/Search.php b/civicrm/CRM/Core/Form/Search.php index 1ade998abd75526e593bab89aff9b11a45e1643f..c4711b7d52389fabee815d3770f040c34defbef0 100644 --- a/civicrm/CRM/Core/Form/Search.php +++ b/civicrm/CRM/Core/Form/Search.php @@ -321,7 +321,7 @@ class CRM_Core_Form_Search extends CRM_Core_Form { foreach ($fields as $fieldName => $field) { if (!empty($this->_formValues[$fieldName]) && empty($field['options']) && empty($field['pseudoconstant'])) { if (in_array($field['type'], [CRM_Utils_Type::T_STRING, CRM_Utils_Type::T_TEXT])) { - $this->_formValues[$fieldName] = ['LIKE' => CRM_Contact_BAO_Query::getWildCardedValue(TRUE, 'LIKE', $this->_formValues[$fieldName])]; + $this->_formValues[$fieldName] = ['LIKE' => CRM_Contact_BAO_Query::getWildCardedValue(TRUE, 'LIKE', trim($this->_formValues[$fieldName]))]; } } } diff --git a/civicrm/CRM/Event/Form/ManageEvent/EventInfo.php b/civicrm/CRM/Event/Form/ManageEvent/EventInfo.php index 0bf756f151a2447f52591d70965e6a7d1b914a41..b11e8d50f3b44e4d9580c2f1e38fcc140ef2e334 100644 --- a/civicrm/CRM/Event/Form/ManageEvent/EventInfo.php +++ b/civicrm/CRM/Event/Form/ManageEvent/EventInfo.php @@ -66,9 +66,9 @@ class CRM_Event_Form_ManageEvent_EventInfo extends CRM_Event_Form_ManageEvent { $this->set('type', 'Event'); $this->set('subType', CRM_Utils_Array::value('event_type_id', $_POST)); $this->assign('customDataSubType', CRM_Utils_Array::value('event_type_id', $_POST)); - $this->set('entityId', $this->_id); + $this->set('entityId', $entityID); - CRM_Custom_Form_CustomData::preProcess($this, NULL, $this->_eventType, 1, 'Event', $this->_id); + CRM_Custom_Form_CustomData::preProcess($this, NULL, $this->_eventType, 1, 'Event', $entityID); CRM_Custom_Form_CustomData::buildQuickForm($this); CRM_Custom_Form_CustomData::setDefaultValues($this); } diff --git a/civicrm/CRM/Export/BAO/Export.php b/civicrm/CRM/Export/BAO/Export.php index b7f06d505bcda77850a1fdbaef2ed4e1ab05a46c..2be84a1d8f4677298bb3fc19a84c9618d77e7184 100644 --- a/civicrm/CRM/Export/BAO/Export.php +++ b/civicrm/CRM/Export/BAO/Export.php @@ -118,6 +118,7 @@ INSERT INTO {$componentTable} SELECT distinct gc.contact_id FROM civicrm_group_c } $processor->setComponentTable($componentTable); $processor->setComponentClause($componentClause); + $processor->setIds($ids); list($query, $queryString) = $processor->runQuery($params, $order); diff --git a/civicrm/CRM/Export/BAO/ExportProcessor.php b/civicrm/CRM/Export/BAO/ExportProcessor.php index bd9559bbe2a37bf5ffb9c0d09b1700a624b8b02e..86ac5057df0b8068e2c4139f562167d0ea7e3085 100644 --- a/civicrm/CRM/Export/BAO/ExportProcessor.php +++ b/civicrm/CRM/Export/BAO/ExportProcessor.php @@ -100,6 +100,13 @@ class CRM_Export_BAO_ExportProcessor { */ protected $contactGreetingFields = []; + /** + * An array of primary IDs of the entity being exported. + * + * @var array + */ + protected $ids = []; + /** * Get additional non-visible fields for address merge purposes. * @@ -585,6 +592,20 @@ class CRM_Export_BAO_ExportProcessor { $this->queryOperator = $queryOperator; } + /** + * @return array + */ + public function getIds() { + return $this->ids; + } + + /** + * @param array $ids + */ + public function setIds($ids) { + $this->ids = $ids; + } + /** * @return array */ @@ -2326,7 +2347,14 @@ WHERE id IN ( $deleteIDString ) // call export hook $headerRows = $this->getHeaderRows(); $exportTempTable = $this->getTemporaryTable(); + $exportMode = $this->getExportMode(); + $sqlColumns = $this->getSQLColumns(); + $componentTable = $this->getComponentTable(); + $ids = $this->getIds(); CRM_Utils_Hook::export($exportTempTable, $headerRows, $sqlColumns, $exportMode, $componentTable, $ids); + if ($exportMode !== $this->getExportMode() || $componentTable !== $this->getComponentTable()) { + CRM_Core_Error::deprecatedFunctionWarning('altering the export mode and/or component table in the hook is no longer supported.'); + } if ($exportTempTable !== $this->getTemporaryTable()) { CRM_Core_Error::deprecatedFunctionWarning('altering the export table in the hook is deprecated (in some flows the table itself will be)'); $this->setTemporaryTable($exportTempTable); @@ -2355,7 +2383,7 @@ LIMIT $offset, $limit while ($dao->fetch()) { $row = []; - foreach (array_keys($this->getSQLColumns()) as $column) { + foreach (array_keys($sqlColumns) as $column) { $row[$column] = $dao->$column; } $componentDetails[] = $row; diff --git a/civicrm/CRM/Report/Form.php b/civicrm/CRM/Report/Form.php index 8090032de0de291ec5aa7f9295f47592a3493d4f..77495fdcbaa1c586e3199d2bb8c8231029c278cf 100644 --- a/civicrm/CRM/Report/Form.php +++ b/civicrm/CRM/Report/Form.php @@ -155,9 +155,6 @@ class CRM_Report_Form extends CRM_Core_Form { */ protected $_groupFilter = FALSE; - // [ML] Required for civiexportexcel - public $supportsExportExcel = TRUE; - /** * Has the report been optimised for group filtering. * @@ -2845,11 +2842,6 @@ WHERE cg.extends IN ('" . implode("','", $this->_customGroupExtends) . "') AND $this->_absoluteUrl = TRUE; $this->addPaging = FALSE; } - elseif ($this->_outputMode == 'excel2007') { - $printOnly = TRUE; - $this->_absoluteUrl = TRUE; - $this->addPaging = FALSE; - } elseif ($this->_outputMode == 'group') { $this->assign('outputMode', 'group'); } @@ -3502,9 +3494,6 @@ WHERE cg.extends IN ('" . implode("','", $this->_customGroupExtends) . "') AND elseif ($this->_outputMode == 'csv') { CRM_Report_Utils_Report::export2csv($this, $rows); } - elseif ($this->_outputMode == 'excel2007') { - CRM_CiviExportExcel_Utils_Report::export2excel2007($this, $rows); - } elseif ($this->_outputMode == 'group') { $group = $this->_params['groups']; $this->add2group($group); diff --git a/civicrm/CRM/Report/xml/Menu/Report.xml b/civicrm/CRM/Report/xml/Menu/Report.xml index 6426e1cc018e4a86610d2d6bb45e8f2da5893489..e6f57492efe1263ccf1658e1c28da902dedcf715 100644 --- a/civicrm/CRM/Report/xml/Menu/Report.xml +++ b/civicrm/CRM/Report/xml/Menu/Report.xml @@ -14,7 +14,6 @@ <title>CiviCRM Reports</title> <page_callback>CRM_Report_Page_InstanceList</page_callback> <access_callback>1</access_callback> - <is_public>true</is_public> </item> <item> <path>civicrm/report/template/list</path> @@ -44,7 +43,6 @@ <title>Report</title> <page_callback>CRM_Report_Page_Instance</page_callback> <access_callback>1</access_callback> - <is_public>true</is_public> </item> <item> <path>civicrm/admin/report/template/list</path> diff --git a/civicrm/CRM/Upgrade/Incremental/php/FiveSeventeen.php b/civicrm/CRM/Upgrade/Incremental/php/FiveSeventeen.php index 9f362989b5adc19cdebcc335f722f0ea2ffa01fc..82ed72d0becaa8798e908c612e696eb938154da9 100644 --- a/civicrm/CRM/Upgrade/Incremental/php/FiveSeventeen.php +++ b/civicrm/CRM/Upgrade/Incremental/php/FiveSeventeen.php @@ -105,13 +105,24 @@ class CRM_Upgrade_Incremental_php_FiveSeventeen extends CRM_Upgrade_Incremental_ $this->addTask(ts('Add pptx to accepted attachment file types'), 'updateFileTypes'); } + /** + * Upgrade function. + * + * @param string $rev + */ + public function upgrade_5_17_1($rev) { + // Need to do this again because the alpha1 version had a typo and so didn't do anything. + $this->addTask(ts('Add pptx to accepted attachment file types'), 'updateFileTypes'); + } + /** * Update safe file types. */ public function updateFileTypes() { CRM_Core_BAO_OptionValue::ensureOptionValueExists([ - 'safe_file_extension', - ['label' => 'pptx', 'name' => 'pptx'], + 'option_group_id' => 'safe_file_extension', + 'label' => 'pptx', + 'name' => 'pptx', ]); return TRUE; } diff --git a/civicrm/CRM/Upgrade/Incremental/sql/5.17.1.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/5.17.1.mysql.tpl new file mode 100644 index 0000000000000000000000000000000000000000..00d208673b2c2d9f8de7aa35bc656bbb2c6b599e --- /dev/null +++ b/civicrm/CRM/Upgrade/Incremental/sql/5.17.1.mysql.tpl @@ -0,0 +1 @@ +{* file to handle db changes in 5.17.1 during upgrade *} diff --git a/civicrm/CRM/Upgrade/Incremental/sql/5.17.2.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/5.17.2.mysql.tpl new file mode 100644 index 0000000000000000000000000000000000000000..08c75608e25ab93ff824dfef6d5181c470874d60 --- /dev/null +++ b/civicrm/CRM/Upgrade/Incremental/sql/5.17.2.mysql.tpl @@ -0,0 +1 @@ +{* file to handle db changes in 5.17.2 during upgrade *} diff --git a/civicrm/CRM/Upgrade/Incremental/sql/5.17.3.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/5.17.3.mysql.tpl new file mode 100644 index 0000000000000000000000000000000000000000..684237bb69cd52be4a01d70bb4a13740888844bf --- /dev/null +++ b/civicrm/CRM/Upgrade/Incremental/sql/5.17.3.mysql.tpl @@ -0,0 +1 @@ +{* file to handle db changes in 5.17.3 during upgrade *} diff --git a/civicrm/CRM/Upgrade/Incremental/sql/5.17.4.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/5.17.4.mysql.tpl new file mode 100644 index 0000000000000000000000000000000000000000..bf00882ddf36948db3143ffb0144364731f63797 --- /dev/null +++ b/civicrm/CRM/Upgrade/Incremental/sql/5.17.4.mysql.tpl @@ -0,0 +1 @@ +{* file to handle db changes in 5.17.4 during upgrade *} diff --git a/civicrm/CRM/Utils/API/HTMLInputCoder.php b/civicrm/CRM/Utils/API/HTMLInputCoder.php index bc9a2b51810b789435eb9bc0fe0faa3ba039083d..c0f5cdecc8cb3ab9c18adfeebe9ef12d40fb0437 100644 --- a/civicrm/CRM/Utils/API/HTMLInputCoder.php +++ b/civicrm/CRM/Utils/API/HTMLInputCoder.php @@ -119,6 +119,8 @@ class CRM_Utils_API_HTMLInputCoder extends CRM_Utils_API_AbstractFieldCoder { 'operator', // CRM-20468 'content', + // CiviCampaign Goal Details + 'goal_general', ]; $custom = CRM_Core_DAO::executeQuery('SELECT id FROM civicrm_custom_field WHERE html_type = "RichTextEditor"'); while ($custom->fetch()) { diff --git a/civicrm/CRM/Utils/System/DrupalBase.php b/civicrm/CRM/Utils/System/DrupalBase.php index 829b3870d152bfcb32e46d6261bd23cc61408baf..115efaebebbec9b58c00eb0b4aef02dc65fa102f 100644 --- a/civicrm/CRM/Utils/System/DrupalBase.php +++ b/civicrm/CRM/Utils/System/DrupalBase.php @@ -673,9 +673,7 @@ abstract class CRM_Utils_System_DrupalBase extends CRM_Utils_System_Base { * @return bool */ public function isFrontEndPage() { - // Get the menu items. - $args = explode('?', $_GET['q']); - $path = $args[0]; + $path = CRM_Utils_System::getUrlPath(); // Get the menu for above URL. $item = CRM_Core_Menu::get($path); diff --git a/civicrm/CRM/Utils/System/WordPress.php b/civicrm/CRM/Utils/System/WordPress.php index d841ba15d8875b65628d0425cc801efde688659a..bf35954360efa02b4711d693867b1103ffcc9a9d 100644 --- a/civicrm/CRM/Utils/System/WordPress.php +++ b/civicrm/CRM/Utils/System/WordPress.php @@ -827,13 +827,11 @@ class CRM_Utils_System_WordPress extends CRM_Utils_System_Base { $contactCreated = 0; $contactMatching = 0; - // previously used $wpdb - which means WordPress *must* be bootstrapped - $wpUsers = get_users(array( - 'blog_id' => get_current_blog_id(), - 'number' => -1, - )); + global $wpdb; + $wpUserIds = $wpdb->get_col("SELECT $wpdb->users.ID FROM $wpdb->users"); - foreach ($wpUsers as $wpUserData) { + foreach ($wpUserIds as $wpUserId) { + $wpUserData = get_userdata($wpUserId); $contactCount++; if ($match = CRM_Core_BAO_UFMatch::synchronizeUFMatch($wpUserData, $wpUserData->$id, diff --git a/civicrm/api/v3/Contact.php b/civicrm/api/v3/Contact.php index 3c2fc5bed28f07efda93bdbad960bf5de36a36e8..bcaa9954cc8b0fd69302347da3932079c93408b0 100644 --- a/civicrm/api/v3/Contact.php +++ b/civicrm/api/v3/Contact.php @@ -163,6 +163,8 @@ function _civicrm_api3_contact_create_spec(&$params) { * * @return array * API Result Array + * + * @throws \API_Exception */ function civicrm_api3_contact_get($params) { $options = []; @@ -382,6 +384,11 @@ function _civicrm_api3_contact_get_spec(&$params) { * Array of options (so we can modify the filter). */ function _civicrm_api3_contact_get_supportanomalies(&$params, &$options) { + if (!empty($params['email']) && !is_array($params['email'])) { + // Fix this to be in array format so the query object does not add LIKE + // I think there is a better fix that I will do for master. + $params['email'] = ['=' => $params['email']]; + } if (isset($params['showAll'])) { if (strtolower($params['showAll']) == "active") { $params['contact_is_deleted'] = 0; diff --git a/civicrm/civicrm-version.php b/civicrm/civicrm-version.php index 55ea38b126dc54c4c6e8a4631c87a2de391a7de1..7268e7e92c1ae6142b04495110e2de9381b958c4 100644 --- a/civicrm/civicrm-version.php +++ b/civicrm/civicrm-version.php @@ -1,7 +1,7 @@ <?php /** @deprecated */ function civicrmVersion( ) { - return array( 'version' => '5.17.0', + return array( 'version' => '5.17.4', 'cms' => 'Wordpress', 'revision' => '' ); } diff --git a/civicrm/release-notes.md b/civicrm/release-notes.md index a35dc34a517c11cb28bf5e47e17c94a6b0872c21..8a49819b296c779aee08dfb73182e6c3104035cf 100644 --- a/civicrm/release-notes.md +++ b/civicrm/release-notes.md @@ -15,6 +15,42 @@ Other resources for identifying changes are: * https://github.com/civicrm/civicrm-joomla * https://github.com/civicrm/civicrm-wordpress +## CiviCRM 5.17.4 + +Released September 12, 2019 + +- **[Synopsis](release-notes/5.17.4.md#synopsis)** +- **[Bugs resolved](release-notes/5.17.4.md#bugs)** +- **[Credits](release-notes/5.17.4.md#credits)** +- **[Feedback](release-notes/5.17.4.md#feedback)** + +## CiviCRM 5.17.3 + +Released September 10, 2019 + +- **[Synopsis](release-notes/5.17.3.md#synopsis)** +- **[Bugs resolved](release-notes/5.17.3.md#bugs)** +- **[Credits](release-notes/5.17.3.md#credits)** +- **[Feedback](release-notes/5.17.3.md#feedback)** + +## CiviCRM 5.17.2 + +Released September 9, 2019 + +- **[Synopsis](release-notes/5.17.2.md#synopsis)** +- **[Bugs resolved](release-notes/5.17.2.md#bugs)** +- **[Credits](release-notes/5.17.2.md#credits)** +- **[Feedback](release-notes/5.17.2.md#feedback)** + +## CiviCRM 5.17.1 + +Released September 9, 2019 + +- **[Synopsis](release-notes/5.17.1.md#synopsis)** +- **[Bugs resolved](release-notes/5.17.1.md#bugs)** +- **[Credits](release-notes/5.17.1.md#credits)** +- **[Feedback](release-notes/5.17.1.md#feedback)** + ## CiviCRM 5.17.0 Released September 4, 2019 diff --git a/civicrm/release-notes/5.17.1.md b/civicrm/release-notes/5.17.1.md new file mode 100644 index 0000000000000000000000000000000000000000..58a979c599ef61d726ddc0793df0ddbea4a8d941 --- /dev/null +++ b/civicrm/release-notes/5.17.1.md @@ -0,0 +1,39 @@ +# CiviCRM 5.17.1 + +Released September 9, 2019 + +- **[Synopsis](#synopsis)** +- **[Bugs resolved](#bugs)** +- **[Credits](#credits)** +- **[Feedback](#feedback)** + +## <a name="synopsis"></a>Synopsis + +| *Does this version...?* | | +|:--------------------------------------------------------------- |:-------:| +| Fix security vulnerabilities? | no | +| Change the database schema? | no | +| Alter the API? | no | +| Require attention to configuration options? | no | +| **Fix problems installing or upgrading to a previous version?** | **yes** | +| Introduce features? | no | +| **Fix bugs?** | **yes** | + +## <a name="bugs"></a>Bugs resolved + +- **CiviCampaign: Fix deletion of campaigns when popups are disabled ([dev/core#1233](https://lab.civicrm.org/dev/core/issues/1233): [#15233](https://github.com/civicrm/civicrm-core/pull/15233))** +- **Upgrade: Fix adding of pptx to the list of safe file extensions ([dev/core#1190](https://lab.civicrm.org/dev/core/issues/1190): [#15239](https://github.com/civicrm/civicrm-core/pull/15239))** + +## <a name="credits"></a>Credits + +This release was developed by the following authors and reviewers: + +Wikimedia Foundation - Eileen McNaughton; iXiam - César Ramos; Dave D; +CiviCRM - Tim Otten; Australian Greens - Seamus Lee + +## <a name="feedback"></a>Feedback + +These release notes are edited by Tim Otten and Andrew Hunt. If you'd like to +provide feedback on them, please login to https://chat.civicrm.org/civicrm and +contact `@agh1`. + diff --git a/civicrm/release-notes/5.17.2.md b/civicrm/release-notes/5.17.2.md new file mode 100644 index 0000000000000000000000000000000000000000..dc537db7286aea65bfacc83d8e5cb5a914f59d4b --- /dev/null +++ b/civicrm/release-notes/5.17.2.md @@ -0,0 +1,37 @@ +# CiviCRM 5.17.2 + +Released September 9, 2019 + +- **[Synopsis](#synopsis)** +- **[Bugs resolved](#bugs)** +- **[Credits](#credits)** +- **[Feedback](#feedback)** + +## <a name="synopsis"></a>Synopsis + +| *Does this version...?* | | +|:--------------------------------------------------------------- |:-------:| +| Fix security vulnerabilities? | no | +| Change the database schema? | no | +| Alter the API? | no | +| Require attention to configuration options? | no | +| Fix problems installing or upgrading to a previous version? | no | +| Introduce features? | no | +| **Fix bugs?** | **yes** | + +## <a name="bugs"></a>Bugs resolved + +- **_Advanced Search_: Fix failure when searching by email ([dev/core#1244](https://lab.civicrm.org/dev/core/issues/1244): [#15255](https://github.com/civicrm/civicrm-core/pull/15255))** + +## <a name="credits"></a>Credits + +This release was developed by the following authors and reviewers: + +Wikimedia Foundation - Eileen McNaughton; Australian Greens - Seamus Lee + +## <a name="feedback"></a>Feedback + +These release notes are edited by Tim Otten and Andrew Hunt. If you'd like to +provide feedback on them, please login to https://chat.civicrm.org/civicrm and +contact `@agh1`. + diff --git a/civicrm/release-notes/5.17.3.md b/civicrm/release-notes/5.17.3.md new file mode 100644 index 0000000000000000000000000000000000000000..438debf64256c2751ea3b589230d327dad6dd748 --- /dev/null +++ b/civicrm/release-notes/5.17.3.md @@ -0,0 +1,40 @@ +# CiviCRM 5.17.3 + +Released September 10, 2019 + +- **[Synopsis](#synopsis)** +- **[Bugs resolved](#bugs)** +- **[Credits](#credits)** +- **[Feedback](#feedback)** + +## <a name="synopsis"></a>Synopsis + +| *Does this version...?* | | +|:--------------------------------------------------------------- |:-------:| +| Fix security vulnerabilities? | no | +| Change the database schema? | no | +| Alter the API? | no | +| Require attention to configuration options? | no | +| Fix problems installing or upgrading to a previous version? | no | +| Introduce features? | no | +| **Fix bugs?** | **yes** | + +## <a name="bugs"></a>Bugs resolved + +- **_Advanced Search_: Fix additional issues with email filtering ([#15275](https://github.com/civicrm/civicrm-core/pull/15275), [#15276](https://github.com/civicrm/civicrm-core/pull/15276))** +- **_CiviReports_: Present reports using backend UI ([#15261](https://github.com/civicrm/civicrm-core/pull/15261))** +- **_Drupal 8_: Resolve new warnings about deprecated `q` variable ([dev/core#52](https://lab.civicrm.org/dev/drupal/issues/52): [#15268](https://github.com/civicrm/civicrm-core/pull/15268))** + +## <a name="credits"></a>Credits + +This release was developed by the following authors and reviewers: + +Wikimedia Foundation - Eileen McNaughton; SemperIT - Karin Gerritsen; John +Kingsnorth; Jens Schuppe; Coop SymbioTIC - Mathieu Lutfy; CiviCRM - Tim +Otten; Australian Greens - Seamus Lee + +## <a name="feedback"></a>Feedback + +These release notes are edited by Tim Otten and Andrew Hunt. If you'd like to +provide feedback on them, please login to https://chat.civicrm.org/civicrm and +contact `@agh1`. diff --git a/civicrm/release-notes/5.17.4.md b/civicrm/release-notes/5.17.4.md new file mode 100644 index 0000000000000000000000000000000000000000..40fe84125dc9feb4b25adce4c2a23693402194a4 --- /dev/null +++ b/civicrm/release-notes/5.17.4.md @@ -0,0 +1,42 @@ +# CiviCRM 5.17.4 + +Released September 12, 2019 + +- **[Synopsis](#synopsis)** +- **[Bugs resolved](#bugs)** +- **[Credits](#credits)** +- **[Feedback](#feedback)** + +## <a name="synopsis"></a>Synopsis + +| *Does this version...?* | | +|:--------------------------------------------------------------- |:-------:| +| Fix security vulnerabilities? | no | +| Change the database schema? | no | +| Alter the API? | no | +| Require attention to configuration options? | no | +| Fix problems installing or upgrading to a previous version? | no | +| Introduce features? | no | +| **Fix bugs?** | **yes** | + +## <a name="bugs"></a>Bugs resolved + +- **_CiviEvent_: Incorrect validation message when using a template and custom field ([dev/core#1241](https://lab.civicrm.org/dev/core/issues/1241): [#15292](https://github.com/civicrm/civicrm-core/pull/15292))** +- **_Export_: Export hook omits most parameters ([dev/core#1247](https://lab.civicrm.org/dev/core/issues/1247): [#15287](https://github.com/civicrm/civicrm-core/pull/15287))** +- **_Search Builder_: Fatal error if `Household` type is disabled ([dev/core#1246](https://lab.civicrm.org/dev/core/issues/1246): [#15284](https://github.com/civicrm/civicrm-core/pull/15284))** + +## <a name="credits"></a>Credits + +This release was developed by the following authors and reviewers: + +Wikimedia Foundation - Eileen McNaughton; Megaphone Technology Consulting - +Jon Goldberg; Marcus J Wilson; JMA Consulting - Monish Deb; Dave D; Coop +SymbioTIC - Mathieu Lutfy; CiviCoop - Jaap Jansma; CiviCRM - Coleman Watts, +Tim Otten; Caltha - Tomasz Pietrzkowski; Australian Greens - Seamus Lee; +Agileware - Justin Freeman + +## <a name="feedback"></a>Feedback + +These release notes are edited by Tim Otten and Andrew Hunt. If you'd like to +provide feedback on them, please login to https://chat.civicrm.org/civicrm and +contact `@agh1`. diff --git a/civicrm/sql/civicrm_data.mysql b/civicrm/sql/civicrm_data.mysql index e4a877a0fd1b2e7edbf8408693befea6895e7009..b0df00a5a726eea514863fcc7629e150b1e86c8b 100644 --- a/civicrm/sql/civicrm_data.mysql +++ b/civicrm/sql/civicrm_data.mysql @@ -24050,4 +24050,4 @@ INSERT INTO `civicrm_report_instance` ( `domain_id`, `title`, `report_id`, `description`, `permission`, `form_values`) VALUES ( @domainID, 'Survey Details', 'survey/detail', 'Detailed report for canvassing, phone-banking, walk lists or other surveys.', 'access CiviReport', 'a:39:{s:6:"fields";a:2:{s:9:"sort_name";s:1:"1";s:6:"result";s:1:"1";}s:22:"assignee_contact_id_op";s:2:"eq";s:25:"assignee_contact_id_value";s:0:"";s:12:"sort_name_op";s:3:"has";s:15:"sort_name_value";s:0:"";s:17:"street_number_min";s:0:"";s:17:"street_number_max";s:0:"";s:16:"street_number_op";s:3:"lte";s:19:"street_number_value";s:0:"";s:14:"street_name_op";s:3:"has";s:17:"street_name_value";s:0:"";s:15:"postal_code_min";s:0:"";s:15:"postal_code_max";s:0:"";s:14:"postal_code_op";s:3:"lte";s:17:"postal_code_value";s:0:"";s:7:"city_op";s:3:"has";s:10:"city_value";s:0:"";s:20:"state_province_id_op";s:2:"in";s:23:"state_province_id_value";a:0:{}s:13:"country_id_op";s:2:"in";s:16:"country_id_value";a:0:{}s:12:"survey_id_op";s:2:"in";s:15:"survey_id_value";a:0:{}s:12:"status_id_op";s:2:"eq";s:15:"status_id_value";s:1:"1";s:11:"custom_1_op";s:2:"in";s:14:"custom_1_value";a:0:{}s:11:"custom_2_op";s:2:"in";s:14:"custom_2_value";a:0:{}s:17:"custom_3_relative";s:1:"0";s:13:"custom_3_from";s:0:"";s:11:"custom_3_to";s:0:"";s:11:"description";s:75:"Detailed report for canvassing, phone-banking, walk lists or other surveys.";s:13:"email_subject";s:0:"";s:8:"email_to";s:0:"";s:8:"email_cc";s:0:"";s:10:"permission";s:17:"access CiviReport";s:6:"groups";s:0:"";s:9:"domain_id";i:1;}'); -UPDATE civicrm_domain SET version = '5.17.0'; +UPDATE civicrm_domain SET version = '5.17.4'; diff --git a/civicrm/sql/civicrm_generated.mysql b/civicrm/sql/civicrm_generated.mysql index 0effa371f68a5f0bc99ece39b894fc3f0dbb5f51..8c09872fbcd6f9ee88f87af15fdb7f8db7f9c614 100644 --- a/civicrm/sql/civicrm_generated.mysql +++ b/civicrm/sql/civicrm_generated.mysql @@ -399,7 +399,7 @@ UNLOCK TABLES; LOCK TABLES `civicrm_domain` WRITE; /*!40000 ALTER TABLE `civicrm_domain` DISABLE KEYS */; -INSERT INTO `civicrm_domain` (`id`, `name`, `description`, `config_backend`, `version`, `contact_id`, `locales`, `locale_custom_strings`) VALUES (1,'Default Domain Name',NULL,NULL,'5.17.0',1,NULL,'a:1:{s:5:\"en_US\";a:0:{}}'); +INSERT INTO `civicrm_domain` (`id`, `name`, `description`, `config_backend`, `version`, `contact_id`, `locales`, `locale_custom_strings`) VALUES (1,'Default Domain Name',NULL,NULL,'5.17.4',1,NULL,'a:1:{s:5:\"en_US\";a:0:{}}'); /*!40000 ALTER TABLE `civicrm_domain` ENABLE KEYS */; UNLOCK TABLES; diff --git a/civicrm/vendor/autoload.php b/civicrm/vendor/autoload.php index 0dacd5acc5b015e76bfce02c38617e6deb0cc33f..f2a3da1a76b81b4beac903c35c7e1a53e8d32e4c 100644 --- a/civicrm/vendor/autoload.php +++ b/civicrm/vendor/autoload.php @@ -4,4 +4,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInitaddd23dcfc6b0d68da4604d6256054b8::getLoader(); +return ComposerAutoloaderInit3324202d05d7a3ae8de98f2b862178d5::getLoader(); diff --git a/civicrm/vendor/composer/autoload_real.php b/civicrm/vendor/composer/autoload_real.php index 60e9d16afd9236294d6c2725cb86efac235abe34..84bf40d5900606bd2f0e938cb8e521ed9cfbfd8c 100644 --- a/civicrm/vendor/composer/autoload_real.php +++ b/civicrm/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInitaddd23dcfc6b0d68da4604d6256054b8 +class ComposerAutoloaderInit3324202d05d7a3ae8de98f2b862178d5 { private static $loader; @@ -19,9 +19,9 @@ class ComposerAutoloaderInitaddd23dcfc6b0d68da4604d6256054b8 return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInitaddd23dcfc6b0d68da4604d6256054b8', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInit3324202d05d7a3ae8de98f2b862178d5', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(); - spl_autoload_unregister(array('ComposerAutoloaderInitaddd23dcfc6b0d68da4604d6256054b8', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit3324202d05d7a3ae8de98f2b862178d5', 'loadClassLoader')); $includePaths = require __DIR__ . '/include_paths.php'; $includePaths[] = get_include_path(); @@ -31,7 +31,7 @@ class ComposerAutoloaderInitaddd23dcfc6b0d68da4604d6256054b8 if ($useStaticLoader) { require_once __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInitaddd23dcfc6b0d68da4604d6256054b8::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit3324202d05d7a3ae8de98f2b862178d5::getInitializer($loader)); } else { $map = require __DIR__ . '/autoload_namespaces.php'; foreach ($map as $namespace => $path) { @@ -52,19 +52,19 @@ class ComposerAutoloaderInitaddd23dcfc6b0d68da4604d6256054b8 $loader->register(true); if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInitaddd23dcfc6b0d68da4604d6256054b8::$files; + $includeFiles = Composer\Autoload\ComposerStaticInit3324202d05d7a3ae8de98f2b862178d5::$files; } else { $includeFiles = require __DIR__ . '/autoload_files.php'; } foreach ($includeFiles as $fileIdentifier => $file) { - composerRequireaddd23dcfc6b0d68da4604d6256054b8($fileIdentifier, $file); + composerRequire3324202d05d7a3ae8de98f2b862178d5($fileIdentifier, $file); } return $loader; } } -function composerRequireaddd23dcfc6b0d68da4604d6256054b8($fileIdentifier, $file) +function composerRequire3324202d05d7a3ae8de98f2b862178d5($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { require $file; diff --git a/civicrm/vendor/composer/autoload_static.php b/civicrm/vendor/composer/autoload_static.php index adf62f2b9c5702f6b36607637d5c35b0a22a85e9..67bab4155040fcc568705bbe494e9c321f89c855 100644 --- a/civicrm/vendor/composer/autoload_static.php +++ b/civicrm/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInitaddd23dcfc6b0d68da4604d6256054b8 +class ComposerStaticInit3324202d05d7a3ae8de98f2b862178d5 { public static $files = array ( '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php', @@ -456,11 +456,11 @@ class ComposerStaticInitaddd23dcfc6b0d68da4604d6256054b8 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInitaddd23dcfc6b0d68da4604d6256054b8::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInitaddd23dcfc6b0d68da4604d6256054b8::$prefixDirsPsr4; - $loader->prefixesPsr0 = ComposerStaticInitaddd23dcfc6b0d68da4604d6256054b8::$prefixesPsr0; - $loader->fallbackDirsPsr0 = ComposerStaticInitaddd23dcfc6b0d68da4604d6256054b8::$fallbackDirsPsr0; - $loader->classMap = ComposerStaticInitaddd23dcfc6b0d68da4604d6256054b8::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInit3324202d05d7a3ae8de98f2b862178d5::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit3324202d05d7a3ae8de98f2b862178d5::$prefixDirsPsr4; + $loader->prefixesPsr0 = ComposerStaticInit3324202d05d7a3ae8de98f2b862178d5::$prefixesPsr0; + $loader->fallbackDirsPsr0 = ComposerStaticInit3324202d05d7a3ae8de98f2b862178d5::$fallbackDirsPsr0; + $loader->classMap = ComposerStaticInit3324202d05d7a3ae8de98f2b862178d5::$classMap; }, null, ClassLoader::class); } diff --git a/civicrm/xml/version.xml b/civicrm/xml/version.xml index acf72410cb24b252d15fec305aacd4257ec38b37..21d597b7d4b141991249d3d22ecf81d1c0cf6685 100644 --- a/civicrm/xml/version.xml +++ b/civicrm/xml/version.xml @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="iso-8859-1" ?> <version> - <version_no>5.17.0</version_no> + <version_no>5.17.4</version_no> </version>