Released January 4, 2023
Does this version...? | |
---|---|
Fix security vulnerabilities? | no |
Change the database schema? | yes |
Alter the API? | yes |
Require attention to configuration options? | yes |
Fix problems installing or upgrading to a previous version? | yes |
Introduce features? | yes |
Fix bugs? | yes |
Fix security vulnerabilities? | yes |
- CIVI-SA-2023-01: RCE via Help Subsystem
- CIVI-SA-2023-02: XSS via CiviEvent
- CIVI-SA-2023-03: XSS via Asset Builder
-
APIv4 Autocomplete - Support searching by ID, customize some entities (24976)
Brings the new APIv4 Autocomplete widget up to the level of the v3 EntityRef, and in several ways surpasses it.
-
Use APIv4-based Autocomplete widget throughout SearchKit, Afform & API Explorer (24974 and 25111)
Switches APIv4-based UIs to consistently use the new Autocomplete widget instead of the old v3-based entityRef.
-
default token filter (25031)
Adds a token filter of "default", ex: {civicrm_membership.name|default:"Not a member"} will default to "Not a Member".
-
Update location tokens for Contact to new apiv4 style (25032)
Migrates location tokens for contacts to use the APIv4 style.
-
Bool token formatting (dev/core#3962: 24923)
Adds 'boolean' as a filter for tokens ex:
{if {contact.current_employer|bool}} ({contact.current_employer}){/if}
. -
improve social sharing footer (25003)
Improves Social Sharing footer text.
-
Use domain id in log file name making it easy to find correct log file (dev/core#3136: 24893)
Improves logging by incorporating the domain id.
-
Add entity-types-php mixin (24947)
Adds a new mixin to scan for entity types that civix could be adapted to take advantage of it.
-
Expose created date column in contact reports (dev/core#3992: 24978)
Adds "Created Date" as a column option for contact reports.
-
Add Validate and Import search kit actions to import search displays (24821)
Adds validate and import SearchKit actions to import search displays.
-
Make SearchKit Required (24739)
Makes it so SearchKit cannot be disabled.
-
SearchKit - Add enable/disable tasks (25084)
Adds enable and disable tasks (when relevant) to SearchKit.
-
SearchKit - Include html columns in spreadsheet download (25126)
Adds html-type columns to SearchKit spreadsheet downloads, by formatting them as plain text.
-
SearchKit displays: be able to add description so end user knows the context (dev/core#3980: 24985 and 24942)
Exposes SavedSearch descriptions in SearchKit to admins.
-
SearchKit - Add clone button for search displays (24899)
Adds a clone button to easily make a copy of a search display.
-
Hide deprecated fields from SearchKit & Afform (25113)
Hides any fields marked @deprecated from the SearchKit & Afform UI.
-
Afform - Support ContactType-specific tabs and blocks (25069)
Allows one to create Contact Type specific tabs and blocks in Afform.
-
Afform - relationships fill from other entity (dev/core#3453: 25001)
Enables contacts to be auto-loaded on Afforms based on their relationships to other contacts.
-
Afform - Customizable APIv4-based Autocomplete widget for EntityRef fields (24832)
Switches all Afform EntityRef fields to use the new APIv4-based Autocomplete widget.
-
Support multiple contact_type in hook_civicrm_tabset (25101)
Improves
hook_civicrm_tabset
to support an array of contact types for each tab on the contact summary page. -
Adding better translation for ThankYou page tpl for recurring messaging (25068)
Improves translation of the thank you page template.
-
Add FormBuilder forms to Civiimport (25072)
Makes Civiimport forms embeddable.
-
Create MVP UI for imports when background queue processing is taking place (25041)
Creates a UI for imports when background queue processing is taking place.
-
Use search display to view errors when using Civi-import extension (25038)
Replaces the link to download the csv with a link to view the search display if civiimport is enabled, allowing re-doing the import within the UI.
-
Add Imports search (25081)
Adds a user interface to search imports.
-
Add 'my imports' to Reports navigation (in civimport extension) (25086)
Adds a new link to the Navigation bar for sites with the civiimport extension: "my imports".
-
Turn 'From' dropdown in 'Send Email' into a searchable select2 (24957)
Improves the user experience of the "Send Email" form by making the "From" dropdown a searchable select2.
-
Migrate case activity revisions to trigger-based logging (Work Towards dev/core#1532: 25119)
Makes Activity revisions unselectable to be filterable in UI and adds an upgrade message regarding case activity changes.
-
add event entity to formbuilder (24991)
Makes the
Event
entity available in Afform. -
Make it clear that same email for event registrations allows multiple registrations per contact (24649)
Changes the field label text for the event setting option "Same email address?" to "Allow same email and multiple registrations?"
-
Make flexmailer mandatory (25110)
Makes the
flexmailer
extension required by default. -
Messagetemplate schema changes (24992)
Makes the 'MessageTemplate' entity available in APIv4.
-
Adding mailing events (unsub, open, clicks, etc) to API4 (Work Towards dev/core#3965: 25059 and 25056)
Adds Mailing entities to APIv4 and makes MessageTemplate.master_id fully joinable.
-
APIv3 - Use the Exception rather than the rule (24977)
Converts APIv3 in Smarty and Ajax to use exceptions instead of
CRM_Core_TemporaryErrorScope
. -
OptionValues & search kit - missing metadata? (Work Towards dev/core#3921: 24984, 24990, 24967, 24969, 24968 and 24970)
Adds html definition to schema for is_active and default field.
-
Support ES6 (2015) in civilint: jshint config update (24975)
Fixes errors on ES6 code in civilint.
-
Can't search contact with only number (dev/core#3735: 24727)
Fixes getlist retrieve with id.
-
Evaluate if any indexed fields are unused (Work Towards dev/core#1634: 25112)
Deprecates unused activity columns.
-
Example data leaks from the live database (dev/core#3981: 24945)
Fixes examples to use 0 rather than a possibly-real contact_id.
-
Add default label field for RelationshipType entity (25021)
Fixes a bug in Afform that prevents relationships from being created.
-
[documentation] fileinfo PHP extension not listed as requirement (dev/core#4014: 25115)
Adds ext-fileinto php extension to composer.
-
Symfony 4.3+: CI warnings due to change in EventDispatcherInterface (dev/core#2316: 24132)
-
Remove unsupported reCAPTCHA options (dev/core#4020: 25098)
-
SearchKit - Fix crashy-ness when an Afform contains a deleted search (25091)
-
SearchKit - Fix campaign, event & primary address dropdowns (24963)
-
SearchKit - Fix Campaign, State, Country selectors (again) (25053)
-
SearchKit - Fix option loading & rendering for in-place edit (25197)
-
SearchKit - Fix display count when updating items on the last page (24987)
-
afform/oauth-client - don't call stat on null (25035)
-
Afform - Fix multivalue entityRef fields (24966)
-
Avoid symbol scan errors in oauth-client help text (24998)
-
Add handling to token processor for double http in url tokens (25078)
-
FieldSpec - Generate better default field titles for DAOs (25080)
-
Log API Authorization failed errors (25030)
-
Apiv4 Explorer DashboardContact doesn't load dashboards (dev/core#4021: 25099)
-
APIv4 - Always allow anonymous autocomplete action access (24980)
-
Fix Import summary to differentiate between 'valid' and 'imported' (25040)
-
add legend to CMS user creation section (25002)
-
Allow Joinables to be added to tables without specifying a base column (24993)
-
AdminUI - Always cleanup saved searches during uninstall (24760)
-
Fix Relationship to permit disabled relationships as duplicates & fix test (25047)
-
Fix api handling of OptionValue defaults (24938)
-
fix numfmt error when pager limit is set in Civi settings (25070)
-
Pass correct variable type to the hook (25046)
-
Do not
set
cache in cache-bypass mode, since we are bypassingget
(25073) -
Fix CiviCRM Home/Hide/Logout translation (25000)
-
Fix query to use standard
CRM_Core_DAO::executeQuery
(25075) -
Don't allow selection of deleted contacts as email recipients (24898)
-
FourSeven Upgrade: disable i18nrewrite to avoid multilingual fatal (24960)
-
always define showCMS (25125)
-
Use fastArray cache for js_strings (24989)
-
(alternate) Sentence runs together since period is inside the if block (25005)
-
Don't crash ContributionView when participant fields are null (24906)
-
Fix PHP Notice: Undefined offset in _civicrm_member_roles_sync() (661)
-
Menubar - Fix buggy, slow loader (25012)
-
Stop using single hard-coded value array (clean up from previous refactors) (25137)
-
ensure currency is included to avoid translation problems (24798)
-
Fix enotice on user dash - when user has membership/s & debugging enabled (25140)
-
Fix 'cannot determine default entity' error on New Batch page (25189)
-
Nested tags are not showing under some circumstances (dev/core#4049: 25272)
- Only show File Activity on Case success alert for 10 seconds (24905)
-
fixes dash line appended to the contribution amounts if label is empty (25033)
-
Assigning to accounting batch and closing batch fails with javascript error (dev/core#3960: 25129)
-
Import contribution fails in update mode even if contribution id is provided. (dev/core#4038: 25204)
-
Payment processor handling of
billing-country-5
inconsistent (dev/core#3977: 24927) -
Crash when viewing contact's contribution tab and a contribution has no line items (dev/core#4027: 25145)
-
Invoices have started miscalculating on save in version 5.56.0, rounding down quantities (dev/core#4039: 25213)
- Flexmailer: Prevent broken urls containing hyphens when click tracking is enabled for plain text mailings (25149)
-
Menubar - fix height of quicksearch (Drupal9) (25010)
-
Notice: Undefined variable: custom_link in civicrm_handler_field_link_contact->render_link() (line 118 of civicrm/drupal/modules/views/civicrm/civicrm_handler_field_link_contact.inc). (dev/drupal#168: 660)
- Allow multiple non-invoking Shortcodes to render (281)
-
EntityFinancialAccount - A tale of two BAO classes (25036)
-
Simplify removing file extension when using basename function (24948)
-
Add new Organization Example contact (The Daily Bugle) (24939)
-
Raise priority of Base Page
the_content
callback (282) -
Cast membership object as array before passing to getMembershipStatusByDate() (25139)
-
getSiteStats - Use consistent report format (25158)
-
Duplicate
Activity::importableFields
to upgrader & increase deprecation (25088) -
ajax batchSave() method should be static, php8 compatibility (25029)
-
SearchKit - Minor wording change (25071)
-
SearchKit - Fix unit test so sort param actually does something (25133)
-
Fold
processGreetingTemplate
function only called from one place into caller, deprecate (24925) -
Core extensions - Upgrade to civix 22.10.0 (24944)
-
[php 8] Update pear/mail to 1.5 (25092)
-
Add noisy deprecation to
getContactTokenReplacement
(25077) -
Add noisy deprecation to deprecated contribution token functions (25050)
-
Deprecate
CRM_Mailing_BAO_MailingAB::del()
(25024) -
Deprecate
CRM_Financial_BAO_EntityFinancialAccount::del()
(25026 and 25082) -
Add noisy deprecation to unused functions
replaceContactTokens
,replaceCaseTokens
(24933) -
CRM_Utils_System_WordPress - Drop unused variable (25132)
-
CiviMail - BAO files were renamed in core (285)
-
Mailing - Rename DAO files for better short names (24982)
-
added contributor Sebastian Lisken (24914)
-
Var type fix in comment (25011)
-
More del() deprecations in favour of standard deleteRecord() (25006)
-
More BAO
del()
deprecations (25019) -
Use IP address helper method consistently (25065)
-
Regenerate ContactType DAO (25079)
-
Regenerate Country DAO (24946)
-
Regen DAO (24979)
-
DAOs are stale (25043)
-
Remove unused private function
removeNullContactTokens
(24932) -
TabHeader: remove redundant history.replaceState (24931)
-
Remove noisly deprecated function PDFLetterCommon::postProcess (25108)
-
Remove always-true ifs (25136)
-
remove unused template vars from Profile Form (25124)
-
remove civimail-spooler script (25122)
-
Remove unused, deprecated class
CRM_Activity_Form_Task_PDFLetterCommon
(25106) -
Remove further usage of 'preferred_mail_format' (25109)
-
Remove handling for legacy
preferred_mail_format
(25076) -
Remove deprecated PdfLetterCommon class - membership (25060)
-
Remove deprecated, probably long-broken function
replaceOrgTokens
(25051) -
remove unused code in Profile template (25121)
-
Remove php8-specific coding pattern (24952)
-
Remove legacyCreateMultiple function (25048)
-
Remove another call to deprecated
CRM_Contribute_PseudoConstant::contributionStatus
(24590) -
Remove deprecated token function (25049)
-
Remove deprecated token function
replaceComponentTokens
(24934) -
Deprecate
CRM_Event_BAO_Event::del()
in favour ofdeleteRecord()
(25018) -
Deprecate
CRM_Contact_BAO_Relationship::del()
in favour ofdeleteRecord()
(25017) -
php8 - don't pass null as string (25007)
-
PHP 8.1 (dev/core#3181: 284 and 24915)
-
[REF][PHP8.2] Fix Pager Common and Smarty issue with Dynamic properties in php8.2 (355)
-
[REF][PHP8.1] Fix a couple of issues where passing in NULL in string functions is deprecated in PHP8.1 (24911)
-
REF: Replace CRM_Utils_Array::value in CRM/Event/Form/Registration (25042)
-
[REF] ContactType BAO - Simplify getAllContactTypes (25064)
-
REF: Consistent variables names in formRule for CRM/Event/Form/Register (25045)
-
[REF] Fix E2E_Core_ErrorTest on wordpress-clean builds (24913)
-
[REF] Unused vars in the State Machine (24901)
-
[REF] OptionValue - Deprecate del() function in favor of standard deleteRecord (24999)
-
[REF] DAO - Use class_alias for aliases of renamed classes (24983)
-
Fix miscoordination between CiviUnitTestCase/CiviEnvBuilder. Fix flaky ConformanceTest. (25177)
-
Fix test class not to use discouraged function (25074)
-
Test cleanup, remove calls to deprecated financial BAO functions (25085)
-
PriceSetTest - Fix test-run on case-insensitive filesystem (24892)
-
Add tests for importing county (includes adding v4 County api) (24919)
-
SearchKit - Add unit test for multivalued custom fields (24941)
-
Test fix - setup is incongruent (25037)
-
Cleanup in test class (25022)
-
Test cleanup, stop using legacy financial bao methods (25083)
-
Rename test class to reflect tested class (25107)
-
Further cleanup on JobTest (24935)
-
CRM_Utils_FileTest - Fix compatibility with private data folders (25160)
-
[NFC] Update instructions for running regen online (25138)
-
[NFC] UtilsTest - convert EventDispatcher to CiviEventDispatcher (25013)
-
[NFC] Allow running tests/phpunit/CRM/Core/DAOTest.php on mariadb (25008)
-
[NFC] Regression - lotsa noise on Searchkit screen if Form code editor enabled (dev/core#4008: 25131)
-
[NFC] Add @since annotation (24958)
-
[NFC] Clean up in test class (24922)
-
[NFC] Minor cleanup in test (24921)
-
[NFC] Test class cleanup (JobTest) (24920)
-
[NFC] Update testGetSiteStats to match earlier name change (25150)
This release was developed by the following code authors:
AGH Strategies - Alice Frumin, Andie Hunt; BrightMinded Ltd - Bradley Taylor; Christian Wach; CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; civiservice.de - Sebastian Lisken; Coop SymbioTIC - Mathieu Lutfy, Shane Bill; Dave D; Craft Coders - Sebastian Gellweiler; Humanists UK - Andrew West; JMA Consulting - Monish Deb, Seamus Lee; John Kingsnorth; Luna Design - Andrew Wasson; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire; Progressive Technology Project - Jamie McClelland; Squiffle Consulting - Aidan Saunders; Third Sector Design - Kurund Jalmi; Wikimedia Foundation - Eileen McNaughton; Wildsight - Lars Sanders-Green
Most authors also reviewed code for this release; in addition, the following reviewers contributed their comments:
Agileware - Justin Freeman; Artful Robot - Rich Lott; Australian Greens - Andrew Cormick-Dockery; Circle Interactive - Dave Jenkins; Freeform Solutions - Herb van den Dool; Nicol Wistreich; Tadpole Collective - Kevin Cristiano
These release notes are edited by Alice Frumin and Andie Hunt. If you'd like
to provide feedback on them, please log in to https://chat.civicrm.org/civicrm
and contact @agh1
.