5 - **[Synopsis](#synopsis)**
6 - **[Features](#features)**
7 - **[Bugs resolved](#bugs)**
8 - **[Miscellany](#misc)**
9 - **[Credits](#credits)**
10 - **[Feedback](#feedback)**
12 ## <a name="synopsis"></a>Synopsis
14 | *Does this version...?* | |
15 |:--------------------------------------------------------------- |:-------:|
16 | Fix security vulnerabilities? | no |
17 | **Change the database schema?** | **yes** |
18 | **Alter the API?** | **yes** |
19 | Require attention to configuration options? | no |
20 | **Fix problems installing or upgrading to a previous version?** | **yes** |
21 | **Introduce features?** | **yes** |
22 | **Fix bugs?** | **yes** |
24 ## <a name="features"></a>Features
28 - **Remove campaign_id pseudoconstants
29 ([19463](https://github.com/civicrm/civicrm-core/pull/19463))**
31 Improves performance by not loading (potentially huge) list of campaigns
34 - **Custom setting for boolean checkbox is serialized as int value
35 ([dev/core#2371](https://lab.civicrm.org/dev/core/-/issues/2371):
36 [19576](https://github.com/civicrm/civicrm-core/pull/19576))**
38 Serializes setting value as boolean for checkbox in CRM_Admin_Form_Generic.
40 - **Apply bootstrap theme to searchKit dashlets
41 ([19577](https://github.com/civicrm/civicrm-core/pull/19577))**
43 Themes SearchKit dashlets.
45 - **Crypto - Add support for signing and verifying JSON Web Tokens
46 ([19599](https://github.com/civicrm/civicrm-core/pull/19599))**
48 Introduces a mechanism for working with JSON Web Tokens.
50 - **Add 'readonly' attribute to fields in schema
51 ([dev/core#2397](https://lab.civicrm.org/dev/core/-/issues/2397):
52 [19627](https://github.com/civicrm/civicrm-core/pull/19627))**
54 Adds 'readonly' metadata to all id fields, custom fields with 'is_view' and
55 appropriate contact fields.
57 - **Show Contact age on deceased date
58 ([19348](https://github.com/civicrm/civicrm-core/pull/19348))**
60 Shows age of contact when it was deceased if deceased date is present.
62 - **View sent emails in activities
63 ([dev/core#1750](https://lab.civicrm.org/dev/core/-/issues/1750):
64 [18299](https://github.com/civicrm/civicrm-core/pull/18299))**
66 Replaces tokens in Activity content for sent emails.
68 - **Expose a REST end-point through standard routing
69 ([dev/core#2077](https://lab.civicrm.org/dev/core/-/issues/2077):
70 [19728](https://github.com/civicrm/civicrm-core/pull/19728))**
72 Provides a binding for CRM_Utils_REST in the conventional routing system.
74 - **Improve activity import to support updates (Work Towards
75 [dev/core#2308](https://lab.civicrm.org/dev/core/-/issues/2308):
76 [19421](https://github.com/civicrm/civicrm-core/pull/19421),
77 [19553](https://github.com/civicrm/civicrm-core/pull/19553) and
78 [19555](https://github.com/civicrm/civicrm-core/pull/19555))**
80 Clean up and tests in preparation for changes to the Activity Import.
82 - **Support chain-select elements in .setting.php files
83 ([dev/core#2386](https://lab.civicrm.org/dev/core/-/issues/2386):
84 [19629](https://github.com/civicrm/civicrm-core/pull/19629))**
86 Makes it possible to create metadata-driven chain select fields.
88 - **Add no results found on empty civireports dashlet
89 ([dev/core#2420](https://lab.civicrm.org/dev/core/-/issues/2420):
90 [19668](https://github.com/civicrm/civicrm-core/pull/19668))**
92 Adds text to report template saying no results found if that is the case.
94 - **Search kit navigation - once I've created an afform it's hard to edit it
95 ([dev/core#2389](https://lab.civicrm.org/dev/core/-/issues/2389):
96 [19617](https://github.com/civicrm/civicrm-core/pull/19617))**
98 Improves SearchKit admin page by including links to edit.
100 - **Afform - Add 'View Page' link from afform edit screen
101 ([19645](https://github.com/civicrm/civicrm-core/pull/19645))**
103 Improves Afform edit screen by adding a link to "View Page".
105 - **Afform - Add link to edit form in breadcrumbs
106 ([19691](https://github.com/civicrm/civicrm-core/pull/19691))**
108 If the user has permission to edit the Afform form (and the afform_admin
109 extension is enabled), shows a breadcrumb back to edit the form.
111 - **Afform - Remove ngRoute from afformStandalone page
112 ([19703](https://github.com/civicrm/civicrm-core/pull/19703))**
114 Removes an unused dependency from the Afform standalone page, making it
115 more flexible and reusable.
117 - **Afform Gui - Block editing enhancements
118 ([19530](https://github.com/civicrm/civicrm-core/pull/19530))**
120 Improves block editing in the Afform GUI.
122 - **Add created_id & modified_id to civicrm_saved_search
123 ([dev/core#2422](https://lab.civicrm.org/dev/core/-/issues/2422):
124 [19709](https://github.com/civicrm/civicrm-core/pull/19709))**
126 Sites using search kit will rapidly start to accumulate a large number of saved
127 searches and will want better filtering (& cleanup). This adds created_id and
128 modified_id and starts populating them as well as expires_date (which won't
129 start populating until it is exposed in the search kit UI).
131 - **afform_mock - Hide extension. Clearly indicate as development-only
132 ([19541](https://github.com/civicrm/civicrm-core/pull/19541))**
134 Hides the afform_mock extensio and clearly indicates it as development-only.
136 - **Afform - Support date range filters for search displays
137 ([19632](https://github.com/civicrm/civicrm-core/pull/19632))**
139 Adds support for date range filters for Afform search displays.
141 - **Afform - Allow public submission (PUB-CONTACT). Expand E2E test coverage.
142 ([19579](https://github.com/civicrm/civicrm-core/pull/19579))**
144 Makes it possible to submit new contact records to Afform as an anonymous
145 user, and includes E2E test-coverage to that effect.
147 - **Afform - SearchKit support for calculated fields
148 ([19612](https://github.com/civicrm/civicrm-core/pull/19612))**
150 Adds support for calculated fields as afform search filters.
152 - **Search kit select current user
153 ([19620](https://github.com/civicrm/civicrm-core/pull/19620))**
155 Adds the ability to choose "Current User" for search criteria which allows
156 displays to show different results to different users.
158 - **Search Kit - Use wrapper api to run searches
159 ([19585](https://github.com/civicrm/civicrm-core/pull/19585))**
161 Adds a new `SearchDisplay.Run` api action to centralize the logic and
162 permissions for retrieving results for search displays.
164 - **SearchKit - Enable links for implicit joins
165 ([19631](https://github.com/civicrm/civicrm-core/pull/19631))**
167 Improves SearchKit to show links for implicitly joined entities.
169 - **SearchKit - cleanup display configuration and add "rewrite" feature
170 ([19662](https://github.com/civicrm/civicrm-core/pull/19662))**
172 Adds the ability to rewrite fields in search displays, while streamlining the
173 display administration screen.
175 - **SearchKit - Take search filters from the url when viewing a standalone
176 display ([19713](https://github.com/civicrm/civicrm-core/pull/19713))**
178 Passes all query params from the url fragment as search filters to
181 - **SearchKit - Add links/menus/buttons to search displays
182 ([19673](https://github.com/civicrm/civicrm-core/pull/19673))**
184 Gives the ability to configure sets of links, buttons or menus in SearchKit
187 - **SearchKit - Add implicit joins for displaying labels of related entities
188 ([19554](https://github.com/civicrm/civicrm-core/pull/19554))**
190 Gives SearchKit the ability to display labels of related entities, for
191 example, displaying the Campaign title instead of just the Campaign ID.
193 - **SearchKit - Add links to view multi-record custom data
194 ([19626](https://github.com/civicrm/civicrm-core/pull/19626))**
196 When creating a search display, you can now add a link to view a Multi-Record
199 - **APIv4 - Add option lists to getFields html_type and data_type
200 ([19596](https://github.com/civicrm/civicrm-core/pull/19596))**
202 Adds option lists to html_type and data_type in APIv4 getFields to make them
203 easier to discover in the API Explorer.
205 - **Add is empty filter to search / api
206 ([19736](https://github.com/civicrm/civicrm-core/pull/19736))**
208 Adds 2 new operators, "Is Empty" & "Not Empty" to SearchKit (and APIv4 in
209 general). Removes the "Is Null / Not Null" operators from SearchKit because
210 they are overly technical and have confusingly similar names to the new
211 operators (they are still available in the API generally, just not the SearchKit
214 - **Improve search display filter validation
215 ([19720](https://github.com/civicrm/civicrm-core/pull/19720))**
217 When viewing a SearchDisplay, this will verify all filters are permitted by
218 first checking the SELECT clause, and secondly checking for a containing Afform
219 with exposed filters.
221 - **AuthX - Extended authentication support (portable and router-friendly)
222 ([19590](https://github.com/civicrm/civicrm-core/pull/19590))**
224 Introduces an extension, authx, which broadly improves
225 support for HTTP authentication on any CiviCRM route.
227 - **info.xml - Allow multiple `<author>`s
228 ([19684](https://github.com/civicrm/civicrm-core/pull/19684))**
230 Allows info.xml files to list multiple authors.
232 - **APIv3 - Improve array-based apis to support sorting and operators
233 ([19690](https://github.com/civicrm/civicrm-core/pull/19690))**
235 Backports some APIv4 code to v3, for the purpose of supporting entityRef
238 - **Metadata: Add html:label for Contribution Status ID
239 ([19669](https://github.com/civicrm/civicrm-core/pull/19669))**
241 Adds html:label for Contribution Status ID to the metadata.
243 - **APIv4 explorer, search kit - entity reference fields tricky if you know the
244 id ([dev/core#2400](https://lab.civicrm.org/dev/core/-/issues/2400):
245 [19638](https://github.com/civicrm/civicrm-core/pull/19638))**
247 Ensures when the user types an integer into an EntityRef field, the record
248 with that ID is returned first.
250 - **Enable-"Do-no-trade"-filter
251 ([19650](https://github.com/civicrm/civicrm-core/pull/19650))**
253 Adds a Do not trade filter.
257 - **Investigate replacing civicase views with something that is not views (Add
258 test for [dev/core#2385](https://lab.civicrm.org/dev/core/-/issues/2385):
259 [19609](https://github.com/civicrm/civicrm-core/pull/19609))**
261 Adds test coverage for getCaseActivityQuery.
265 - **Delay on rendering contribution dashboard charts seems unnecessary
266 ([dev/core#2365](https://lab.civicrm.org/dev/core/-/issues/2365):
267 [19544](https://github.com/civicrm/civicrm-core/pull/19544))**
269 Speeds up rendering of contribution dashboard charts.
271 ### Joomla Integration
273 - **Use Joomla style language strings to allow translations
274 ([56](https://github.com/civicrm/civicrm-joomla/pull/56))**
276 Changes some hardcoded english strings to use the Joomla translation system
277 so users can create translation overrides.
279 ## <a name="bugs"></a>Bugs resolved
283 - **Ensure dispatcher has loaded listeners
284 ([19614](https://github.com/civicrm/civicrm-core/pull/19614))**
286 Fixes an edge case where the dispatcher can fail to load listeners
288 - **Correct sms numbers
289 ([19509](https://github.com/civicrm/civicrm-core/pull/19509))**
291 When sending SMS messages to contacts in search results, under some
292 conditions a single contact's mobile phone number is repeated over and over
293 again for remaining contacts.
295 - **Asset building breaks the site (Work towards
296 [dev/core#2137](https://lab.civicrm.org/dev/core/-/issues/2137):
297 [19559](https://github.com/civicrm/civicrm-core/pull/19559) and
298 [18830](https://github.com/civicrm/civicrm-core/pull/18830))**
300 Enhances log messages when AssetBuilder fails and put it inside a try/catch.
302 - **documentation on CIVICRM_CRED_KEYS (Work Towards
303 [dev/core#2370](https://lab.civicrm.org/dev/core/-/issues/2370):
304 [19568](https://github.com/civicrm/civicrm-core/pull/19568))**
306 Slightly expands the amount of entropy for certain auto-generated values.
308 - **Prevent double clicking submit button
309 ([dev/core#2372](https://lab.civicrm.org/dev/core/-/issues/2372):
310 [19610](https://github.com/civicrm/civicrm-core/pull/19610))**
312 Prevents double clicking of submit button on any standard form without ajax
313 (ex: New Contribution Form).
315 - **Geocoding saves values that web UI doesn't accept (Work Towards
316 [dev/core#2379](https://lab.civicrm.org/dev/core/-/issues/2379):
317 [19588](https://github.com/civicrm/civicrm-core/pull/19588))**
319 The CiviCRM UI doesn't allow saving more than 14 characters in a geocoding
320 field. However, geocoders themselves aren't restricted to 14 characters. This
321 means that geocoders can enter a geocode that prevents editing the address.
323 - **Afform permissions - open access didn't seem to work (search kit)
324 ([dev/core#2404](https://lab.civicrm.org/dev/core/-/issues/2404):
325 [19657](https://github.com/civicrm/civicrm-core/pull/19657))**
327 Addresses some ambiguities/confusion in permission for Afform. The basic
328 question -- if permission is omitted (in various ways -- unset, null,
329 empty-string), then what is the effective permission?
331 - **Navigation menu order
332 ([dev/core#2424](https://lab.civicrm.org/dev/core/-/issues/2424):
333 [19671](https://github.com/civicrm/civicrm-core/pull/19671))**
335 Ensures one can change the order of navigation items from an extension.
337 - **Create followup section at bottom of non-bulk email activities crashes
338 ([dev/core#2473](https://lab.civicrm.org/dev/core/-/issues/2473):
339 [19874](https://github.com/civicrm/civicrm-core/pull/19874))**
341 Prevents a crash when the assignee is left blank when creating followup on
344 - **Afform - Show breadcrumbs appropriate to whether a form can be edited
345 ([19739](https://github.com/civicrm/civicrm-core/pull/19739))**
347 Removes the "Edit" link from non-editable forms, and adds the current
348 form back into the breadcrumbs, for the sake of forms which use url params for
351 - **APIv4 - Improve handling of joins & custom fields
352 ([19562](https://github.com/civicrm/civicrm-core/pull/19562))**
354 Fixes some apparent bugs in SearchKit where certain fields were apparently
355 supported in the UI but the API would crash when trying to query them.
357 - **APIv4 - Increase alias max length to 256
358 ([19537](https://github.com/civicrm/civicrm-core/pull/19537))**
360 Fixes a bug in Search Kit where fields derived from long complex joins would
361 disappear because their alias was longer than the default length of 63 output
362 by CRM_Utils_String::munge().
364 - **GuzzleMiddleware::url() - Distinguish frontend and backend routes
365 ([19678](https://github.com/civicrm/civicrm-core/pull/19678))**
367 GuzzleMiddlware::url() is a helper that simplifies writing URLs within
368 Guzzle-based tests. For example, $http->get('route://civicrm/dashboard') send
369 a GET request to the local site's civicrm/dashboard page.
371 - **Cannot create proper `Group`s on multilingual with MySQL 5.6 and Civi
373 ([dev/translation#58](https://lab.civicrm.org/dev/translation/-/issues/58):
374 [19740](https://github.com/civicrm/civicrm-core/pull/19740))**
376 - **fieldOptions hook fatal error
377 ([dev/core#1132](https://lab.civicrm.org/dev/core/-/issues/1132):
378 [19580](https://github.com/civicrm/civicrm-core/pull/19580))**
380 - **CiviCRM Find and Merge Duplicate Contacts, does not validate the weight and
381 weight threshold, possible to set a weight threshold which can never be
382 achieved. ([dev/core#2309](https://lab.civicrm.org/dev/core/-/issues/2309):
383 [19604](https://github.com/civicrm/civicrm-core/pull/19604))**
385 - **SearchKit : use of rows in query cause mysql errors
386 ([dev/core#2360](https://lab.civicrm.org/dev/core/-/issues/2360):
387 [19535](https://github.com/civicrm/civicrm-core/pull/19535))**
389 - **Searchkit bug - not displaying grouped by field
390 ([dev/core#2388](https://lab.civicrm.org/dev/core/-/issues/2388):
391 [19618](https://github.com/civicrm/civicrm-core/pull/19618))**
393 - **On mail accounts form, pressing save and test followed by save creates a
395 ([dev/core#2398](https://lab.civicrm.org/dev/core/-/issues/2398):
396 [19636](https://github.com/civicrm/civicrm-core/pull/19636))**
398 - **5.36 upgrade should check if foreign keys exist before adding them
399 ([dev/core#2452](https://lab.civicrm.org/dev/core/-/issues/2452):
400 [19773](https://github.com/civicrm/civicrm-core/pull/19773))**
402 - **Afform (et al) - Fetch more complete list of permissions via APIv4
403 ([19536](https://github.com/civicrm/civicrm-core/pull/19536))**
405 - **Afform: Only permit Date fields to be made into a select list if it is a
406 search form ([19665](https://github.com/civicrm/civicrm-core/pull/19665))**
408 - **SearchKit - Don't save on enter key
409 ([19643](https://github.com/civicrm/civicrm-core/pull/19643))**
411 - **SearchKit - Fix token menu positioning
412 ([19780](https://github.com/civicrm/civicrm-core/pull/19780))**
414 - **SearchKit - Fix broken update dialog and add input type float
415 ([19758](https://github.com/civicrm/civicrm-core/pull/19758))**
417 - **SearchKit - Fix removing all related fields from SELECT when removing a JOIN
418 ([19747](https://github.com/civicrm/civicrm-core/pull/19747))**
420 - **SearchKit - Fix clearing selection behavior
421 ([19686](https://github.com/civicrm/civicrm-core/pull/19686))**
423 - **APIv4 - Rename 'controlField' property to 'control_field'
424 ([19699](https://github.com/civicrm/civicrm-core/pull/19699))**
426 - **APIv4 - Fix HTTP status code selection
427 ([19533](https://github.com/civicrm/civicrm-core/pull/19533))**
429 - **APIv4 - AJAX errors should say *something* useful
430 ([19526](https://github.com/civicrm/civicrm-core/pull/19526))**
432 - **avoid error when reserving respondents in a survey.
433 ([19811](https://github.com/civicrm/civicrm-core/pull/19811))**
435 - **Search display fixes
436 ([19683](https://github.com/civicrm/civicrm-core/pull/19683))**
438 - **Fix migrateUtf8mb4 for special database names
439 ([19708](https://github.com/civicrm/civicrm-core/pull/19708))**
441 - **Angular - Remove deprecated js file
442 ([19704](https://github.com/civicrm/civicrm-core/pull/19704))**
444 - **Fix for missing function CodeGen_Util::removeDir
445 ([19688](https://github.com/civicrm/civicrm-core/pull/19688))**
447 - **Reduce wasted space in civicrm dashboard margins
448 ([19682](https://github.com/civicrm/civicrm-core/pull/19682))**
450 - **Fix i18n issue with changeLog in data templates
451 ([19651](https://github.com/civicrm/civicrm-core/pull/19651))**
453 - **Improve consistency of field titles, labels, types across the schema
454 ([19531](https://github.com/civicrm/civicrm-core/pull/19531))**
456 - **Remove single use of extraParams in CRM_Utils_Token::getTokenDetails()
457 ([19640](https://github.com/civicrm/civicrm-core/pull/19640))**
459 - **Fix incorrect use of ts when setting custom data form title
460 ([19625](https://github.com/civicrm/civicrm-core/pull/19625))**
462 - **Remove check for safe_mode/open_basedir on extension downloader because it
463 triggers false positives
464 ([19582](https://github.com/civicrm/civicrm-core/pull/19582))**
466 - **Delete repeated title and fix some labels
467 ([19565](https://github.com/civicrm/civicrm-core/pull/19565))**
469 - **Fix angular error when user is not logged in.
470 ([19575](https://github.com/civicrm/civicrm-core/pull/19575))**
472 - **Fix 'Unsupported html-element' error on forms using EntityFormTrait
473 ([19560](https://github.com/civicrm/civicrm-core/pull/19560))**
475 - **php 7.4 deprecated squiggly brackets - html/quickform date
476 ([316](https://github.com/civicrm/civicrm-packages/pull/316))**
478 - **php 7.4 - E_NOTICE on membership dashboard
479 ([19545](https://github.com/civicrm/civicrm-core/pull/19545))**
481 - **php 7.4 E_NOTICE in Contact/BAO/Query
482 ([19552](https://github.com/civicrm/civicrm-core/pull/19552))**
486 - **Users with 'view own cases' permission can't open resolved cases
487 ([dev/core#1400](https://lab.civicrm.org/dev/core/-/issues/1400):
488 [19674](https://github.com/civicrm/civicrm-core/pull/19674),
489 [19666](https://github.com/civicrm/civicrm-core/pull/19666) and
490 [19675](https://github.com/civicrm/civicrm-core/pull/19675))**
492 - **"My Cases" dashlet gives datatables error
493 ([dev/core#1207](https://lab.civicrm.org/dev/core/-/issues/1207):
494 [19689](https://github.com/civicrm/civicrm-core/pull/19689))**
498 - **Account IIF Export Amount Format improper
499 ([dev/financial#166](https://lab.civicrm.org/dev/financial/-/issues/166):
500 [19634](https://github.com/civicrm/civicrm-core/pull/19634))**
502 Ensures money fields are formatted properly (no $ sign) when exporting.
504 - **Remove legacy php money_format use, switch to brickmoney
505 ([dev/translation#65](https://lab.civicrm.org/dev/translation/-/issues/65):
506 [19605](https://github.com/civicrm/civicrm-core/pull/19605))**
508 - **Recurring contributions: ThankYou page does not translate the contribution
510 ([dev/translation#32](https://lab.civicrm.org/dev/translation/-/issues/32):
511 [19655](https://github.com/civicrm/civicrm-core/pull/19655))**
513 - **Deprecated force url for contribution dashboard links
514 ([dev/core#2392](https://lab.civicrm.org/dev/core/-/issues/2392):
515 [19621](https://github.com/civicrm/civicrm-core/pull/19621))**
517 - **Use specific function when formatting money for a default
518 ([19602](https://github.com/civicrm/civicrm-core/pull/19602))**
520 - **Use specific function when formatting money for a default ([19652]
521 (https://github.com/civicrm/civicrm-core/pull/19652))**
525 - **deprecated function error
526 ([dev/event#50](https://lab.civicrm.org/dev/event/-/issues/50):
527 [19637](https://github.com/civicrm/civicrm-core/pull/19637))**
529 Fixes a Deprecated function error: "Non-static method
530 CRM_Event_ICalendar::run() should not be called statically in
531 CRM_Core_Invoke::runItem()" when clicking on the ical button on the Manage
534 - **Obsolete wkhtmltopdfPath causes hard fail in event registration due to
535 internal fatal error for the missing package
536 (Revert: [dev/core#2028](https://lab.civicrm.org/dev/core/-/issues/2028):
537 [19942](https://github.com/civicrm/civicrm-core/pull/19942))**
539 Reverts the fix for this issue because it caused a regression.
541 - **Partial payments fail on events in a modal dialog box
542 ([dev/event#48](https://lab.civicrm.org/dev/event/-/issues/48):
543 [19572](https://github.com/civicrm/civicrm-core/pull/19572))**
547 - **Sales tax and Vat issue within memberships - membership fee increases
548 incorrectly when the membership has an error
549 ([dev/core#778](https://lab.civicrm.org/dev/core/-/issues/778):
550 [19648](https://github.com/civicrm/civicrm-core/pull/19648))**
552 Fixes a bug where when sales tax is enabled and is used for a membership form
553 sales tax was added every time the form validation failed.
555 - **Fix display of membership dates on receipts when lineitems do not have a
556 price_set_id ([19508](https://github.com/civicrm/civicrm-core/pull/19508))**
558 - **Fix membership form to correctly calculate tax when a discount is applied
559 ([19476](https://github.com/civicrm/civicrm-core/pull/19476))**
561 ### Drupal Integration
563 - **system_get_info() is deprecated in drupal 9
564 ([dev/drupal#156](https://lab.civicrm.org/dev/drupal/-/issues/156):
565 [19583](https://github.com/civicrm/civicrm-core/pull/19583))**
567 Fixes fatal errors when viewing any CiviReport on a Drupal 9 integration.
569 - **'Recent Items' fails to show list of Recent Items
570 ([dev/core#2387](https://lab.civicrm.org/dev/core/-/issues/2387):
571 [62](https://github.com/civicrm/civicrm-drupal-8/pull/62))**
573 Ensures that the "Recent Items" block shows the list of recent items.
575 - **drush install - Bump up entropy for autogenerated creds. Add signing key.
576 #640 ([58](https://github.com/civicrm/civicrm-drupal-8/pull/58))**
578 ### Joomla Integration
580 - **Joomla::synchronizeUsers - Fix notice due to old style reference
581 ([19677](https://github.com/civicrm/civicrm-core/pull/19677))**
583 - **Joomla - Implement getUfId(). Fix `@user:<name>`.
584 ([19615](https://github.com/civicrm/civicrm-core/pull/19615))**
586 ### WordPress Integration
588 - **WordPress - If we hit a "permission denied" error, return HTTP 403
589 ([19608](https://github.com/civicrm/civicrm-core/pull/19608))**
591 Ensures if the user hits a permission denied error http 403 is returned
594 ## <a name="misc"></a>Miscellany
596 - **Add contactlayouteditor to gitignore
597 ([19611](https://github.com/civicrm/civicrm-core/pull/19611))**
599 - **Convert Smarty & domain token processing to use token processor
600 ([19598](https://github.com/civicrm/civicrm-core/pull/19598))**
602 - **HttpTestTrait - Define helper methods for E2E tests of Civi's HTTP routes
603 ([19600](https://github.com/civicrm/civicrm-core/pull/19600))**
605 - **Mark Old Cividiscount hook support deprecated
606 ([19649](https://github.com/civicrm/civicrm-core/pull/19649))**
608 - **Cleanup - Remove old unused schema/xml files.
609 ([19570](https://github.com/civicrm/civicrm-core/pull/19570))**
611 - **Afform - move contentEditable directive into crmUI library for reusability
612 ([19672](https://github.com/civicrm/civicrm-core/pull/19672))**
614 - **Remove unreachable code & variable cleanup in membership back office form
615 template ([19647](https://github.com/civicrm/civicrm-core/pull/19647))**
617 - **Remove unused code
618 ([19567](https://github.com/civicrm/civicrm-core/pull/19567))**
620 - **Remove empty {ts}
621 ([19622](https://github.com/civicrm/civicrm-core/pull/19622))**
623 - **Remove always-true-if
624 ([19566](https://github.com/civicrm/civicrm-core/pull/19566))**
626 - **REF Regenerate DAOs and I18n Schema Structure following merge of #19565
627 ([19581](https://github.com/civicrm/civicrm-core/pull/19581))**
629 - **[REF] do not needlessly pass as reference, enforce valid param
630 ([19478](https://github.com/civicrm/civicrm-core/pull/19478))**
632 - **[REF] Simplfy parameter
633 ([19654](https://github.com/civicrm/civicrm-core/pull/19654))**
635 - **[REF] Use form property rather than formValues to pass generated invoice ID
637 ([19549](https://github.com/civicrm/civicrm-core/pull/19549))**
639 - **[REF] simplify parameter, use preferred strict
640 ([19597](https://github.com/civicrm/civicrm-core/pull/19597))**
642 - **[REF] Stop passing contribution into completeOrder, id is enough
643 ([19571](https://github.com/civicrm/civicrm-core/pull/19571))**
645 - **[REF] replace deprecated calls with buildOptions
646 ([19578](https://github.com/civicrm/civicrm-core/pull/19578))**
648 - **[REF] Fully remove contribution object from repeattransaction function
649 ([19547](https://github.com/civicrm/civicrm-core/pull/19547))**
651 - **[REF] Remove unused pcp & soft credit handling from previously shared code
652 ([19525](https://github.com/civicrm/civicrm-core/pull/19525))**
654 - **[REF] Rename variable to clarify it's usage
655 ([19556](https://github.com/civicrm/civicrm-core/pull/19556))**
657 - **[REF] Load participant id within completeOrder rather than passing it in
658 ([19641](https://github.com/civicrm/civicrm-core/pull/19641))**
660 - **[REF] Move code that relates to receipts when paying by credit card out of
662 ([19658](https://github.com/civicrm/civicrm-core/pull/19658))**
664 - **[REF] Complete order Unset contribution once we have finished with it.
665 ([19527](https://github.com/civicrm/civicrm-core/pull/19527))**
667 - **[REF] Further extract the portion of sendTemplate that relates to rendering
668 ([19522](https://github.com/civicrm/civicrm-core/pull/19522))**
670 - **(REF) APIv4 - Add hook for whitelisting select AJAX API's for anonymous
671 invocation ([19494](https://github.com/civicrm/civicrm-core/pull/19494))**
673 - **[REF] [Repeattransaction] Stop setting contribution->id
674 ([19538](https://github.com/civicrm/civicrm-core/pull/19538))**
676 - **[REF] [Repeattransaction] use financial_type_id from getTemplateContribution
677 (which already has handling)
678 ([19539](https://github.com/civicrm/civicrm-core/pull/19539))**
680 - **[REF] [Repeattransaction] Remove loading contribution page id from passed in
681 object ([19540](https://github.com/civicrm/civicrm-core/pull/19540))**
683 - **[REF] Fix array access on NULL error when running afform unit tests o…
684 ([19542](https://github.com/civicrm/civicrm-core/pull/19542))**
686 - **[REF] clean up if
687 ([19693](https://github.com/civicrm/civicrm-core/pull/19693))**
689 - **[REF] Simplify is_email_receipt handling
690 ([19524](https://github.com/civicrm/civicrm-core/pull/19524))**
692 - **Add unit test cover for the MessageTemplate::renderMessageTemplate function
693 ([19551](https://github.com/civicrm/civicrm-core/pull/19551))**
695 - **[NFC/Unit Test] Fix passing test that should pass but also should fail
696 ([19607](https://github.com/civicrm/civicrm-core/pull/19607))**
698 - **[NFC] Code cleanup - use use statements, hints
699 ([19595](https://github.com/civicrm/civicrm-core/pull/19595))**
701 - **[NFC] Add in unit test to prove that domain tokens are able to be inc…
702 ([19702](https://github.com/civicrm/civicrm-core/pull/19702))**
704 - **NFC Update comments in token classes
705 ([19715](https://github.com/civicrm/civicrm-core/pull/19715))**
707 - **[NFC] minor cleanup in testCaseCreateWithResolvedStatus
708 ([19664](https://github.com/civicrm/civicrm-core/pull/19664))**
710 - **Minor cleanup - ChangeCaseStatus
711 ([19663](https://github.com/civicrm/civicrm-core/pull/19663))**
713 ## <a name="credits"></a>Credits
715 This release was developed by the following code authors:
717 AGH Strategies - Alice Frumin, Andie Hunt; Blackfly Solutions - Alan Dixon;
718 CiviCoop - Jaap Jansma, Klaas Eikelboom; CiviCRM - Coleman Watts, Tim Otten;
719 CompuCorp - Ahed Eid; Coop SymbioTIC - Mathieu Lutfy; Dave D; elinw; iXiam -
720 Luciano Spiegel; J0WI; JMA Consulting - Monish Deb, Seamus Lee; lunar-debian;
721 Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - Matthew Wire;
722 Progressive Technology Project - Jamie McClelland; Skvare - Sunil Pawar; Tadpole
723 Collective - Kevin Cristiano; tapashdatta; Timbsoft Technologies - Tunbola
724 Ogunwande; Wikimedia Foundation - Eileen McNaughton
726 Most authors also reviewed code for this release; in addition, the following
727 reviewers contributed their comments:
729 a-n The Artists Information Company - William Mortada; Agileware - Justin
730 Freeman; Artful Robot - Rich Lott; Christian Wach; CiviDesk - Yashodha Chaku;
731 Dave T; Fuzion - Peter Davis; JMA Consulting - Joe Murray; MJCO - Mikey O'Toole;
732 Nicol Wistreich; Semper IT - Karin Gerritsen;
734 ## <a name="feedback"></a>Feedback
736 These release notes are edited by Alice Frumin and Andie Hunt. If you'd like
737 to provide feedback on them, please log in to https://chat.civicrm.org/civicrm