| 1 | # CiviCRM 5.46.0 |
| 2 | |
| 3 | Released February 3, 2022 |
| 4 | |
| 5 | - **[Synopsis](#synopsis)** |
| 6 | - **[Features](#features)** |
| 7 | - **[Bugs resolved](#bugs)** |
| 8 | - **[Miscellany](#misc)** |
| 9 | - **[Credits](#credits)** |
| 10 | - **[Feedback](#feedback)** |
| 11 | |
| 12 | ## <a name="synopsis"></a>Synopsis |
| 13 | |
| 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?** | **yes** | |
| 20 | | **Fix problems installing or upgrading to a previous version?** | **yes** | |
| 21 | | **Introduce features?** | **yes** | |
| 22 | | **Fix bugs?** | **yes** | |
| 23 | |
| 24 | ## <a name="features"></a>Features |
| 25 | |
| 26 | ### Core CiviCRM |
| 27 | |
| 28 | - **re-jig demo roles to add restricted user |
| 29 | ([dev/core#2773](https://lab.civicrm.org/dev/core/-/issues/2773): |
| 30 | [22377](https://github.com/civicrm/civicrm-core/pull/22377))** |
| 31 | |
| 32 | Adds an ACL to demo data. |
| 33 | |
| 34 | - **When adding custom data set change default selected option |
| 35 | ([dev/core#2977](https://lab.civicrm.org/dev/core/-/issues/2977): |
| 36 | [22244](https://github.com/civicrm/civicrm-core/pull/22244))** |
| 37 | |
| 38 | Changes the defaults when adding custom data sets to make them more user |
| 39 | friendly. |
| 40 | |
| 41 | - **Expose email on hold as filter for reports |
| 42 | ([dev/core#3012](https://lab.civicrm.org/dev/core/-/issues/3012): |
| 43 | [22357](https://github.com/civicrm/civicrm-core/pull/22357))** |
| 44 | |
| 45 | Adds a email on hold filter to reports. |
| 46 | |
| 47 | - **Increment recommended PHP version |
| 48 | ([dev/core#2996](https://lab.civicrm.org/dev/core/-/issues/2996): |
| 49 | [22265](https://github.com/civicrm/civicrm-core/pull/22265))** |
| 50 | |
| 51 | Changes the minimum PHP version to 7.3 and the recommended PHP version to 7.4. |
| 52 | |
| 53 | - **APIv4 Explorer - Make selected language and format bookmarkable |
| 54 | ([22233](https://github.com/civicrm/civicrm-core/pull/22233))** |
| 55 | |
| 56 | The APIv4 explorer already places params in the URL for easy bookmarking. |
| 57 | This extends it to work for the selected language tab and the selected output |
| 58 | format. |
| 59 | |
| 60 | - **SearchKit - Contextual "View" button |
| 61 | ([dev/core#3016](https://lab.civicrm.org/dev/core/-/issues/3016): |
| 62 | [22367](https://github.com/civicrm/civicrm-core/pull/22367))** |
| 63 | |
| 64 | Improves the SearchKit user interface |
| 65 | |
| 66 | - **SearchKit - Add links for CustomField and CustomGroup entities |
| 67 | ([22302](https://github.com/civicrm/civicrm-core/pull/22302))** |
| 68 | |
| 69 | Improves SearchKit user interface by adding links to custom field and custom |
| 70 | group entities. |
| 71 | |
| 72 | - **SearchKit - Allow functions in the WHERE clause |
| 73 | ([22241](https://github.com/civicrm/civicrm-core/pull/22241))** |
| 74 | |
| 75 | Adds an advanced feature for SearchKit which allows SQL functions in the |
| 76 | WHERE clause. |
| 77 | |
| 78 | - **SearchKit - Import/Export saved search configuration |
| 79 | ([22229](https://github.com/civicrm/civicrm-core/pull/22229))** |
| 80 | |
| 81 | Provides a UI for importing and exporting SavedSearches in JSON format. This |
| 82 | allows power-users to copy and paste their Searches between sites. For |
| 83 | extension developers, includes a direct link to generate a .mgd.php file from |
| 84 | the API Explorer. |
| 85 | |
| 86 | - **SearchKit - Facilitate popup forms |
| 87 | ([22490](https://github.com/civicrm/civicrm-core/pull/22490))** |
| 88 | |
| 89 | This adds two bits of utility code to facilitate adding a popup form to an |
| 90 | Afform containing a Search Display. |
| 91 | |
| 92 | - **SearchKit - Allow aggregate columns to be links |
| 93 | ([22356](https://github.com/civicrm/civicrm-core/pull/22356))** |
| 94 | |
| 95 | Allows aggregate columns to be rendered as a link in SearchKit Displays |
| 96 | |
| 97 | - **CustomGroup - Add pseudoconstant for extends column |
| 98 | ([22282](https://github.com/civicrm/civicrm-core/pull/22282))** |
| 99 | |
| 100 | Adds missing pseudoconstant to schema, which will allow a SearchKit-based |
| 101 | display of custom groups. |
| 102 | |
| 103 | - **Afform - UI and contextual titles for search displays |
| 104 | ([22319](https://github.com/civicrm/civicrm-core/pull/22319))** |
| 105 | |
| 106 | Makes it easy to create drilldown search displays, passing in a URL arg to |
| 107 | specify a category/container. E.g. "Custom fields in group X", "Option values |
| 108 | for Individual Prefix", "Email addresses for Bob Smith". |
| 109 | |
| 110 | - **Add system status warning to display scheduled job failures |
| 111 | ([21762](https://github.com/civicrm/civicrm-core/pull/21762))** |
| 112 | |
| 113 | Adds a system status message to display scheduled job errors. |
| 114 | |
| 115 | - **Add system status check for missing dedupe rules |
| 116 | ([22369](https://github.com/civicrm/civicrm-core/pull/22369))** |
| 117 | |
| 118 | Adds a system status check to alert system administrators when an unsupervised |
| 119 | and/or supervised dedupe rule is missing. |
| 120 | |
| 121 | - **Extensions - Add dependency status check |
| 122 | ([22640](https://github.com/civicrm/civicrm-core/pull/22640))** |
| 123 | |
| 124 | Adds a extensions dependency status check. |
| 125 | |
| 126 | - **Improve accessibility - associate label and fields |
| 127 | ([22361](https://github.com/civicrm/civicrm-core/pull/22361))** |
| 128 | |
| 129 | Associates the labels on the event location form with the relevant inputs to |
| 130 | improve accessibility for screen reader users. |
| 131 | |
| 132 | - **Add state name to export fields |
| 133 | ([22318](https://github.com/civicrm/civicrm-core/pull/22318))** |
| 134 | |
| 135 | Adds the ability to export the state name when exporting contacts. |
| 136 | |
| 137 | - **Add authx_login() API for backend script authentication (alt) |
| 138 | ([22292](https://github.com/civicrm/civicrm-core/pull/22292))** |
| 139 | |
| 140 | Adds a function to login as a user. It is cross-platform; accepts contact ID, |
| 141 | user ID, or username; and it updates relevant services (eg Civi session; |
| 142 | Drupal $user; MySQL @civicrm_user_id). |
| 143 | |
| 144 | ### CiviContribute |
| 145 | |
| 146 | - **Payments - Where do we store IDs from payment processor? (Work Towards |
| 147 | [dev/financial#57](https://lab.civicrm.org/dev/financial/-/issues/57): |
| 148 | [21916](https://github.com/civicrm/civicrm-core/pull/21916))** |
| 149 | |
| 150 | Hides the recur trxn_id if it matches the processor_id. |
| 151 | |
| 152 | - **Financial entity permissions (Work Towards |
| 153 | [dev/core#2752](https://lab.civicrm.org/dev/core/-/issues/2752): |
| 154 | [21178](https://github.com/civicrm/civicrm-core/pull/21178) and |
| 155 | [21181](https://github.com/civicrm/civicrm-core/pull/21181))** |
| 156 | |
| 157 | Allows financial_trxns to be viewed and use ACL, not blanket permissions on |
| 158 | FinancialAccount, FinancialType, EntityFinancialAccount. |
| 159 | |
| 160 | - **Demo sample data - Add in some mixed currency contributions |
| 161 | ([22307](https://github.com/civicrm/civicrm-core/pull/22307))** |
| 162 | |
| 163 | Improves contribution sample data by adding some mixed currency contributions. |
| 164 | |
| 165 | - **Add recurring conributions to sample data |
| 166 | ([22296](https://github.com/civicrm/civicrm-core/pull/22296))** |
| 167 | |
| 168 | Improves contributions sample data by adding recurring contributions. |
| 169 | |
| 170 | ## <a name="bugs"></a>Bugs resolved |
| 171 | |
| 172 | ### Core CiviCRM |
| 173 | |
| 174 | - **"Open in new tab" on .crm-summary-link icons should open contact |
| 175 | page, not summary content. |
| 176 | ([dev/core#2926](https://lab.civicrm.org/dev/core/-/issues/2926): |
| 177 | [22303](https://github.com/civicrm/civicrm-core/pull/22303))** |
| 178 | |
| 179 | - **Separate membership payment on contribution form with auto renewal not get |
| 180 | processed (Work Towards |
| 181 | [dev/core#567](https://lab.civicrm.org/dev/core/-/issues/567): |
| 182 | [22275](https://github.com/civicrm/civicrm-core/pull/22275))** |
| 183 | |
| 184 | Adds a test shell to ensure membership payments with auto renewal get |
| 185 | processed. |
| 186 | |
| 187 | - **Avoid warnings for is_dir() when open_basedir is in effect |
| 188 | ([dev/core#2927](https://lab.civicrm.org/dev/core/-/issues/2927): |
| 189 | [22107](https://github.com/civicrm/civicrm-core/pull/22107))** |
| 190 | |
| 191 | - **Removes the limit of 15 max values for multiple values can also |
| 192 | be retrieved from URL in reports |
| 193 | ([dev/core#2979](https://lab.civicrm.org/dev/core/-/issues/2979): |
| 194 | [22214](https://github.com/civicrm/civicrm-core/pull/22214))** |
| 195 | |
| 196 | - **Fatal error when merging Housholds (getTemplateForGreeting) |
| 197 | ([dev/core#3028](https://lab.civicrm.org/dev/core/-/issues/3028): |
| 198 | [22650](https://github.com/civicrm/civicrm-core/pull/22650))** |
| 199 | |
| 200 | - **TypeError when trying to replace tokens for custom fields that don't exist |
| 201 | ([dev/core#3029](https://lab.civicrm.org/dev/core/-/issues/3029): |
| 202 | [22537](https://github.com/civicrm/civicrm-core/pull/22537))** |
| 203 | |
| 204 | - **Escape single quotes in token html output |
| 205 | ([dev/core#3001](https://lab.civicrm.org/dev/core/-/issues/3001): |
| 206 | [22387](https://github.com/civicrm/civicrm-core/pull/22387) and |
| 207 | [22285](https://github.com/civicrm/civicrm-core/pull/22285))** |
| 208 | |
| 209 | - **APIv4 - Rename 'ReadOnly' trait to 'ReadOnlyEntity' to avoid PHP error |
| 210 | ([22626](https://github.com/civicrm/civicrm-core/pull/22626))** |
| 211 | |
| 212 | - **APIv4 - Fix saving NULL as custom field value |
| 213 | ([22328](https://github.com/civicrm/civicrm-core/pull/22328))** |
| 214 | |
| 215 | - **APIv4 GroupContact create indicates user is added but are not |
| 216 | ([dev/core#2924](https://lab.civicrm.org/dev/core/-/issues/2924): |
| 217 | [22322](https://github.com/civicrm/civicrm-core/pull/22322))** |
| 218 | |
| 219 | - **APIv4 - Make Groups a managed entity, fix 'null' bugs in BAO_Group |
| 220 | ([22228](https://github.com/civicrm/civicrm-core/pull/22228))** |
| 221 | |
| 222 | - **APIv4 - Set 'activity_type_id' to required |
| 223 | ([22359](https://github.com/civicrm/civicrm-core/pull/22359))** |
| 224 | |
| 225 | - **Use api for entityRole - addresses save issue on the form |
| 226 | ([22589](https://github.com/civicrm/civicrm-core/pull/22589))** |
| 227 | |
| 228 | - **SearchKit - Fix editable dates on standalone form |
| 229 | ([22366](https://github.com/civicrm/civicrm-core/pull/22366))** |
| 230 | |
| 231 | - **SearchKit - Fix running searches for anonymous users |
| 232 | ([22597](https://github.com/civicrm/civicrm-core/pull/22597))** |
| 233 | |
| 234 | - **SearchKit - Fix token selector to use expression alias |
| 235 | ([22539](https://github.com/civicrm/civicrm-core/pull/22539))** |
| 236 | |
| 237 | - **SearchKit - Fix UI for configuring display pager limit |
| 238 | ([22321](https://github.com/civicrm/civicrm-core/pull/22321))** |
| 239 | |
| 240 | - **SearchKit - Fix column headers for custom fields in default display |
| 241 | ([22331](https://github.com/civicrm/civicrm-core/pull/22331))** |
| 242 | |
| 243 | - **SearchKit/Form: exposing a Date custom field has invalid year range |
| 244 | ([dev/report#84](https://lab.civicrm.org/dev/report/-/issues/84): |
| 245 | [22234](https://github.com/civicrm/civicrm-core/pull/22234))** |
| 246 | |
| 247 | - **SearchKit: URLs to external sites no longer render |
| 248 | ([dev/report#93](https://lab.civicrm.org/dev/report/-/issues/93): |
| 249 | [22437](https://github.com/civicrm/civicrm-core/pull/22437))** |
| 250 | |
| 251 | - **SearchKit: Chicken-and-egg problem upgrading from 5.35.2 to 5.44.0 |
| 252 | ([dev/report#90](https://lab.civicrm.org/dev/report/-/issues/90): |
| 253 | [22375](https://github.com/civicrm/civicrm-core/pull/22375))** |
| 254 | |
| 255 | Don't crash SearchKit on upgrade from 5.35. |
| 256 | |
| 257 | - **DedupeRules - Translate contact type labels, respect enabled contact types |
| 258 | ([22383](https://github.com/civicrm/civicrm-core/pull/22383))** |
| 259 | |
| 260 | Fixes up the Dedupe Rules page to properly handle contact types. |
| 261 | |
| 262 | - **Allow chart dropdown labels to be translatable. |
| 263 | ([22349](https://github.com/civicrm/civicrm-core/pull/22349))** |
| 264 | |
| 265 | - **SqlParallel - Enable more tests. Fix compatiblity with `release_time` |
| 266 | ([22326](https://github.com/civicrm/civicrm-core/pull/22326))** |
| 267 | |
| 268 | - **Use JS escaping for {ts} calls in a JS context |
| 269 | ([22348](https://github.com/civicrm/civicrm-core/pull/22348))** |
| 270 | |
| 271 | - **Find Activities Search, default search option for Activity Status will |
| 272 | exclude Activities by default which do not have a status of Scheduled or |
| 273 | Completed. Confuses and frustrates End Users. |
| 274 | ([21596](https://github.com/civicrm/civicrm-core/pull/21596))** |
| 275 | |
| 276 | - **Wrap another set of hardcoded strings in {ts} |
| 277 | ([22315](https://github.com/civicrm/civicrm-core/pull/22315))** |
| 278 | |
| 279 | - **Display label before input elements on SMTP settings page |
| 280 | ([22304](https://github.com/civicrm/civicrm-core/pull/22304))** |
| 281 | |
| 282 | - **ExtensionUpgrades - Skip trying to upgrade missing dependencies |
| 283 | ([22623](https://github.com/civicrm/civicrm-core/pull/22623))** |
| 284 | |
| 285 | - **Fix input type for Smarty number formatting (more forgiving) |
| 286 | ([22429](https://github.com/civicrm/civicrm-core/pull/22429))** |
| 287 | |
| 288 | - **Ensure getDuplicateContacts always returns an array |
| 289 | ([22394](https://github.com/civicrm/civicrm-core/pull/22394))** |
| 290 | |
| 291 | - **Ensure dashboardLinks assigned to prevent e-notice |
| 292 | ([22378](https://github.com/civicrm/civicrm-core/pull/22378))** |
| 293 | |
| 294 | - **enotice fix (with default modifiers) |
| 295 | ([22372](https://github.com/civicrm/civicrm-core/pull/22372))** |
| 296 | |
| 297 | - **Fix "Import Multi-Value Custom Data" |
| 298 | ([22365](https://github.com/civicrm/civicrm-core/pull/22365))** |
| 299 | |
| 300 | - **Do not escape showHideBlocks by default |
| 301 | ([22371](https://github.com/civicrm/civicrm-core/pull/22371))** |
| 302 | |
| 303 | - **Fix notices on ACL page |
| 304 | ([22370](https://github.com/civicrm/civicrm-core/pull/22370))** |
| 305 | |
| 306 | - **Fix PropertyBag setRecurInstallments to accept 0 |
| 307 | ([21517](https://github.com/civicrm/civicrm-core/pull/21517))** |
| 308 | |
| 309 | - **Fix over-escaping when default escaping is on |
| 310 | ([22363](https://github.com/civicrm/civicrm-core/pull/22363))** |
| 311 | |
| 312 | - **Fix escape-by-default |
| 313 | ([22362](https://github.com/civicrm/civicrm-core/pull/22362))** |
| 314 | |
| 315 | - **Fix params passed to setStatus method |
| 316 | ([22338](https://github.com/civicrm/civicrm-core/pull/22338))** |
| 317 | |
| 318 | - **Fix Profile helptext menu reference to reCaptcha (by r4zoli) |
| 319 | ([22333](https://github.com/civicrm/civicrm-core/pull/22333))** |
| 320 | |
| 321 | - **Fix inaccuracies and mistakes in comments (especially phpdoc comments) |
| 322 | ([22334](https://github.com/civicrm/civicrm-core/pull/22334))** |
| 323 | |
| 324 | - **Correctly mark updateStatusMessage method as static |
| 325 | ([22335](https://github.com/civicrm/civicrm-core/pull/22335))** |
| 326 | |
| 327 | - **Fix typo. CRM_Core_Execption should be CRM_Core_Exception |
| 328 | ([22336](https://github.com/civicrm/civicrm-core/pull/22336))** |
| 329 | |
| 330 | - **APIv3 - Fix overzealous pseudoconstant matching |
| 331 | ([22298](https://github.com/civicrm/civicrm-core/pull/22298))** |
| 332 | |
| 333 | - **Allow text to be translated and fix URL paths in calls to docURL() function. |
| 334 | ([22311](https://github.com/civicrm/civicrm-core/pull/22311))** |
| 335 | |
| 336 | - **Fix char-set for default escaping |
| 337 | ([22306](https://github.com/civicrm/civicrm-core/pull/22306))** |
| 338 | |
| 339 | - **Crash when adding a relationship when CiviMember is disabled |
| 340 | ([22451](https://github.com/civicrm/civicrm-core/pull/22451))** |
| 341 | |
| 342 | - **Resources: set language-specific cacheCode, fixes AngularJS translation with |
| 343 | multilingual ([22236](https://github.com/civicrm/civicrm-core/pull/22236))** |
| 344 | |
| 345 | - **Do not default-escape weight field on order |
| 346 | ([22256](https://github.com/civicrm/civicrm-core/pull/22256))** |
| 347 | |
| 348 | - **Move require_once for Smarty modifier due to order issues |
| 349 | ([22252](https://github.com/civicrm/civicrm-core/pull/22252))** |
| 350 | |
| 351 | - **Contact/BAO/Query.php: fix searching for whitespace |
| 352 | ([22240](https://github.com/civicrm/civicrm-core/pull/22240))** |
| 353 | |
| 354 | - **Use new money formatting util for Smarty formatting |
| 355 | ([22309](https://github.com/civicrm/civicrm-core/pull/22309))** |
| 356 | |
| 357 | - **Smarty variables] Remove another isset - deferredFinancialType |
| 358 | ([22183](https://github.com/civicrm/civicrm-core/pull/22183))** |
| 359 | |
| 360 | - **Smarty variables] Another isset bites the dust |
| 361 | ([22186](https://github.com/civicrm/civicrm-core/pull/22186))** |
| 362 | |
| 363 | - **Smarty variables] Remove isset from batch form |
| 364 | ([22187](https://github.com/civicrm/civicrm-core/pull/22187))** |
| 365 | |
| 366 | - **[Smarty variables] remove isset from merge screen |
| 367 | ([22193](https://github.com/civicrm/civicrm-core/pull/22193))** |
| 368 | |
| 369 | - **[Smarty variables] Fix overzealous escaping with Smarty default escaping |
| 370 | ([22194](https://github.com/civicrm/civicrm-core/pull/22194))** |
| 371 | |
| 372 | - **[Smarty variables] Remove issets relating to auto_renew |
| 373 | ([22195](https://github.com/civicrm/civicrm-core/pull/22195))** |
| 374 | |
| 375 | - **[Smarty variables] Remove issets from payment processor form |
| 376 | ([22192](https://github.com/civicrm/civicrm-core/pull/22192))** |
| 377 | |
| 378 | - **Smarty modifier - stop using isset to check taxTerm |
| 379 | ([22323](https://github.com/civicrm/civicrm-core/pull/22323))** |
| 380 | |
| 381 | - **E-notice fix (Smarty) |
| 382 | ([22308](https://github.com/civicrm/civicrm-core/pull/22308))** |
| 383 | |
| 384 | ## CiviCampaign |
| 385 | |
| 386 | - **Cleanup Smarty e-notices on campaign dashboard |
| 387 | ([22283](https://github.com/civicrm/civicrm-core/pull/22283))** |
| 388 | |
| 389 | - **Fix campaign dashboard to work with default escaping |
| 390 | ([22364](https://github.com/civicrm/civicrm-core/pull/22364))** |
| 391 | |
| 392 | ## CiviCase |
| 393 | |
| 394 | - **Case activity won't open without a source |
| 395 | ([dev/core#2825](https://lab.civicrm.org/dev/core/-/issues/2825): |
| 396 | [22243](https://github.com/civicrm/civicrm-core/pull/22243))** |
| 397 | |
| 398 | - **APIv4: Confusing error when calling CaseType API |
| 399 | ([dev/core#2984](https://lab.civicrm.org/dev/core/-/issues/2984): |
| 400 | [22231](https://github.com/civicrm/civicrm-core/pull/22231))** |
| 401 | |
| 402 | ## CiviContribution |
| 403 | |
| 404 | - **Repeat Contributions CiviReport warnings: Formatting non-numeric values is |
| 405 | no longer supported |
| 406 | ([dev/core#2982](https://lab.civicrm.org/dev/core/-/issues/2982): |
| 407 | [22217](https://github.com/civicrm/civicrm-core/pull/22217))** |
| 408 | |
| 409 | - **Do not apply default escaping to multiselects on currency form |
| 410 | ([22294](https://github.com/civicrm/civicrm-core/pull/22294))** |
| 411 | |
| 412 | - **Fix broken links in default modifier mode on manage contributions |
| 413 | ([22290](https://github.com/civicrm/civicrm-core/pull/22290))** |
| 414 | |
| 415 | - **Enotice fixes on ContributionPage dash |
| 416 | ([22289](https://github.com/civicrm/civicrm-core/pull/22289))** |
| 417 | |
| 418 | - **Fix E_WARNING access array offset on null when creating new contribution |
| 419 | page ([22373](https://github.com/civicrm/civicrm-core/pull/22373))** |
| 420 | |
| 421 | - **Ensure we don't get previously set honoree values in receipts |
| 422 | ([21483](https://github.com/civicrm/civicrm-core/pull/21483))** |
| 423 | |
| 424 | - **Follow up fix on recur data |
| 425 | ([22301](https://github.com/civicrm/civicrm-core/pull/22301))** |
| 426 | |
| 427 | ## CiviEvent |
| 428 | |
| 429 | - **Event Registration: initialize array |
| 430 | ([22312](https://github.com/civicrm/civicrm-core/pull/22312))** |
| 431 | |
| 432 | Minor code nitpick to avoid a PHP fatal on PHP 8.0 in certain unusual |
| 433 | circumstances. |
| 434 | |
| 435 | - **Fix JS Error for Free event with multiple participant on registration |
| 436 | ([22310](https://github.com/civicrm/civicrm-core/pull/22310))** |
| 437 | |
| 438 | ## Drupal Integration |
| 439 | |
| 440 | - **Deprecated function drupal_get_installed_schema_version() in 9.3, but with a |
| 441 | twist ([dev/drupal#172](https://lab.civicrm.org/dev/drupal/-/issues/172): |
| 442 | [22337](https://github.com/civicrm/civicrm-core/pull/22337) and |
| 443 | [22350](https://github.com/civicrm/civicrm-core/pull/22350))** |
| 444 | |
| 445 | - **"Your browser session has expired and we are unable to complete your form |
| 446 | submission" on all D9.2 anonymous sessions |
| 447 | ([dev/drupal#169](https://lab.civicrm.org/dev/drupal/-/issues/169): |
| 448 | [338](https://github.com/civicrm/civicrm-packages/pull/338))** |
| 449 | |
| 450 | Fixes an error when uploading images to CKEditor via KCFinder. |
| 451 | |
| 452 | - **Fix unreplaced template vars in civicrm.settings.php when using drush |
| 453 | installer ([67](https://github.com/civicrm/civicrm-drupal-8/pull/67))** |
| 454 | |
| 455 | - **Drupal Full-Text Search block session time out error |
| 456 | ([dev/core#3026](https://lab.civicrm.org/dev/core/-/issues/3026): |
| 457 | [22479](https://github.com/civicrm/civicrm-core/pull/22479))** |
| 458 | |
| 459 | ## WordPress Integration |
| 460 | |
| 461 | - **Migrate installers to "setup" API |
| 462 | (Work Towards [dev/core#1615](https://lab.civicrm.org/dev/core/-/issues/1615): |
| 463 | [264](https://github.com/civicrm/civicrm-wordpress/pull/264))** |
| 464 | |
| 465 | Perform CLI installations using Civi\Setup. |
| 466 | |
| 467 | ## <a name="misc"></a>Miscellany |
| 468 | |
| 469 | - **Add workflow template for recurring cancelled |
| 470 | ([21611](https://github.com/civicrm/civicrm-core/pull/21611))** |
| 471 | |
| 472 | - **Add workflow template classes for contributions |
| 473 | ([22340](https://github.com/civicrm/civicrm-core/pull/22340))** |
| 474 | |
| 475 | - **Use field value function to get html signature |
| 476 | ([22445](https://github.com/civicrm/civicrm-core/pull/22445))** |
| 477 | |
| 478 | - **SearchKit - Tweak export explorer link icon + format |
| 479 | ([22300](https://github.com/civicrm/civicrm-core/pull/22300))** |
| 480 | |
| 481 | - **Expose contact ID in getContactInfo method in |
| 482 | CRM/Mailing/Event/BAO/Queue.php |
| 483 | ([dev/core#2962](https://lab.civicrm.org/dev/core/-/issues/2962): |
| 484 | [22096](https://github.com/civicrm/civicrm-core/pull/22096))** |
| 485 | |
| 486 | - **APIv4 Explorer - Format array params using add methods instead of set |
| 487 | ([22382](https://github.com/civicrm/civicrm-core/pull/22382))** |
| 488 | |
| 489 | - **Update Brick/Money to 0.5.3 |
| 490 | ([22246](https://github.com/civicrm/civicrm-core/pull/22246))** |
| 491 | |
| 492 | - **Simplify autogenerated boilerplate upgrader class |
| 493 | ([22225](https://github.com/civicrm/civicrm-core/pull/22225))** |
| 494 | |
| 495 | - **Upgrade - Bump minimum upgradable version to 4.6.12 |
| 496 | ([22238](https://github.com/civicrm/civicrm-core/pull/22238))** |
| 497 | |
| 498 | - **Move two more functions to financialProcessor |
| 499 | ([21927](https://github.com/civicrm/civicrm-core/pull/21927))** |
| 500 | |
| 501 | - **Formatting cleanup |
| 502 | ([22374](https://github.com/civicrm/civicrm-core/pull/22374))** |
| 503 | |
| 504 | - **Rename protected function |
| 505 | ([22259](https://github.com/civicrm/civicrm-core/pull/22259))** |
| 506 | |
| 507 | - **Contributor key: Add Matt Trim |
| 508 | ([22248](https://github.com/civicrm/civicrm-core/pull/22248))** |
| 509 | |
| 510 | - **5.45.0 release notes: added late changes |
| 511 | ([22386](https://github.com/civicrm/civicrm-core/pull/22386))** |
| 512 | |
| 513 | - **Remove handling for always-truthy var being false |
| 514 | ([22260](https://github.com/civicrm/civicrm-core/pull/22260))** |
| 515 | |
| 516 | - **Remove unnecessary ID attribute. |
| 517 | ([22347](https://github.com/civicrm/civicrm-core/pull/22347))** |
| 518 | |
| 519 | - **Remove never passed variables |
| 520 | ([22258](https://github.com/civicrm/civicrm-core/pull/22258))** |
| 521 | |
| 522 | - **Remove unused function |
| 523 | ([22388](https://github.com/civicrm/civicrm-core/pull/22388))** |
| 524 | |
| 525 | - **Initial refactor of createProfileContact groups |
| 526 | ([18158](https://github.com/civicrm/civicrm-core/pull/18158))** |
| 527 | |
| 528 | - **Deprecated function drupal_get_path() |
| 529 | ([69](https://github.com/civicrm/civicrm-drupal-8/pull/69))** |
| 530 | |
| 531 | - **Update jquery.tokeninput.js to 1.6.1 |
| 532 | ([336](https://github.com/civicrm/civicrm-packages/pull/336))** |
| 533 | |
| 534 | - **Privatise function |
| 535 | ([22392](https://github.com/civicrm/civicrm-core/pull/22392))** |
| 536 | |
| 537 | - **Remove unnecessary pass-by-ref |
| 538 | ([22393](https://github.com/civicrm/civicrm-core/pull/22393))** |
| 539 | |
| 540 | - **Remove unused function CRM/Utils/Mail/EmailProcessor::cleanupDir |
| 541 | ([22278](https://github.com/civicrm/civicrm-core/pull/22278))** |
| 542 | |
| 543 | - **Remove unused method getGrantStatusOptGroup |
| 544 | ([22332](https://github.com/civicrm/civicrm-core/pull/22332))** |
| 545 | |
| 546 | - **Remove unnecessary pass-by-ref |
| 547 | ([22279](https://github.com/civicrm/civicrm-core/pull/22279))** |
| 548 | |
| 549 | - **(REF) CRM/Upgrade - Remove unused entrypoint `verifyPreDBstate()` |
| 550 | ([22237](https://github.com/civicrm/civicrm-core/pull/22237))** |
| 551 | |
| 552 | - **(REF) Remove more params that are unused now function is not shared |
| 553 | ([22261](https://github.com/civicrm/civicrm-core/pull/22261))** |
| 554 | |
| 555 | - **(REF) Duplicate function to allow us to work it out of the code |
| 556 | ([22254](https://github.com/civicrm/civicrm-core/pull/22254))** |
| 557 | |
| 558 | - **(REF) Minor parameter simplification |
| 559 | ([22253](https://github.com/civicrm/civicrm-core/pull/22253))** |
| 560 | |
| 561 | - **(REF) Add in getVersion override for Drupal 8/9 to support cv testing and |
| 562 | also cv vars:show picking up the right CMS version |
| 563 | ([22220](https://github.com/civicrm/civicrm-core/pull/22220))** |
| 564 | |
| 565 | - **(REF) Add getter for priceSetID and use full form flow |
| 566 | ([22267](https://github.com/civicrm/civicrm-core/pull/22267))** |
| 567 | |
| 568 | - **(REF) Afform - Use APIv4 for managed dashboard |
| 569 | ([22213](https://github.com/civicrm/civicrm-core/pull/22213))** |
| 570 | |
| 571 | - **(REF) Remove handling for relationshipID |
| 572 | ([22391](https://github.com/civicrm/civicrm-core/pull/22391))** |
| 573 | |
| 574 | - **(REF) Use `CRM_Contact_BAO_ContactType::basicTypes()` instead of hardcoded |
| 575 | lists ([22389](https://github.com/civicrm/civicrm-core/pull/22389))** |
| 576 | |
| 577 | - **(REF) Move code into the function |
| 578 | ([22288](https://github.com/civicrm/civicrm-core/pull/22288))** |
| 579 | |
| 580 | - **(REF) Remove now non-variable variables from previously shared code |
| 581 | ([22284](https://github.com/civicrm/civicrm-core/pull/22284))** |
| 582 | |
| 583 | - **(REF) Duplicate & unshare processFormContribution |
| 584 | ([22276](https://github.com/civicrm/civicrm-core/pull/22276))** |
| 585 | |
| 586 | - **(REF) Stop passing this as form, set in function |
| 587 | ([22287](https://github.com/civicrm/civicrm-core/pull/22287))** |
| 588 | |
| 589 | - **(REF) Deprecated old getContributionStatuses |
| 590 | ([22345](https://github.com/civicrm/civicrm-core/pull/22345))** |
| 591 | |
| 592 | - **(REF) Simplify getContributionStatuses |
| 593 | ([22280](https://github.com/civicrm/civicrm-core/pull/22280))** |
| 594 | |
| 595 | - **(REF) Upgrade jQuery UI to 1.13.0 |
| 596 | ([22583](https://github.com/civicrm/civicrm-core/pull/22583))** |
| 597 | |
| 598 | - **(REF) Further cleanup on employer create |
| 599 | ([22390](https://github.com/civicrm/civicrm-core/pull/22390))** |
| 600 | |
| 601 | - **HookTest - Fix execution on PHP 8 |
| 602 | ([266](https://github.com/civicrm/civicrm-wordpress/pull/266))** |
| 603 | |
| 604 | - **Fix membership test fail for Dec 31 |
| 605 | ([22351](https://github.com/civicrm/civicrm-core/pull/22351))** |
| 606 | |
| 607 | - **Fix tests that fail after 2021 |
| 608 | ([22352](https://github.com/civicrm/civicrm-core/pull/22352))** |
| 609 | |
| 610 | - **Fix test to use full form flow |
| 611 | ([22266](https://github.com/civicrm/civicrm-core/pull/22266))** |
| 612 | |
| 613 | - **Cleanup test class |
| 614 | ([22493](https://github.com/civicrm/civicrm-core/pull/22493))** |
| 615 | |
| 616 | - **(NFC) Cleanup test class |
| 617 | ([22384](https://github.com/civicrm/civicrm-core/pull/22384))** |
| 618 | |
| 619 | - **(NFC) Try to work around failing tests |
| 620 | ([22269](https://github.com/civicrm/civicrm-core/pull/22269))** |
| 621 | |
| 622 | - **(NFC) Cleanup in Authorize.net test class |
| 623 | ([22272](https://github.com/civicrm/civicrm-core/pull/22272))** |
| 624 | |
| 625 | - **(NFC) isDir unit test fails on PHP 7 'min' matrix |
| 626 | ([22418](https://github.com/civicrm/civicrm-core/pull/22418))** |
| 627 | |
| 628 | - **(NFC) APIv4: Add help info for multi-record custom field sets |
| 629 | ([22257](https://github.com/civicrm/civicrm-core/pull/22257))** |
| 630 | |
| 631 | - **(NFC) Test cleanup |
| 632 | ([22251](https://github.com/civicrm/civicrm-core/pull/22251))** |
| 633 | |
| 634 | - **(NFC) Minor cleanup in test class |
| 635 | ([22249](https://github.com/civicrm/civicrm-core/pull/22249))** |
| 636 | |
| 637 | - **(NFC) Cleanup messy boilerplate |
| 638 | ([22224](https://github.com/civicrm/civicrm-core/pull/22224))** |
| 639 | |
| 640 | - **(NFC) Delete boilerplate comments and empty functions from upgrade classes |
| 641 | ([22226](https://github.com/civicrm/civicrm-core/pull/22226))** |
| 642 | |
| 643 | - **(NFC) CRM_Core_Exception incorrectly called without message |
| 644 | ([22339](https://github.com/civicrm/civicrm-core/pull/22339))** |
| 645 | |
| 646 | - **(NFC) Docblock improvements to Import_Field classes |
| 647 | ([22360](https://github.com/civicrm/civicrm-core/pull/22360))** |
| 648 | |
| 649 | ## <a name="credits"></a>Credits |
| 650 | |
| 651 | This release was developed by the following code authors: |
| 652 | |
| 653 | AGH Strategies - Alice Frumin, Andie Hunt; Agileware - Justin Freeman; |
| 654 | BrightMinded Ltd - Bradley Taylor; Circle Interactive - Matt Trim; |
| 655 | CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; |
| 656 | Coop SymbioTIC - Mathieu Lutfy; Dave D; Jens Schuppe; |
| 657 | JMA Consulting - Seamus Lee; Megaphone Technology Consulting - Jon Goldberg; |
| 658 | Miguel Almeida; MJW Consulting - Matthew Wire; |
| 659 | Progressive Technology Project - Jamie McClelland; Skvare - Sunil Pawar; |
| 660 | Squiffle Consulting - Aidan Saunders; Wikimedia Foundation - Eileen McNaughton |
| 661 | |
| 662 | Most authors also reviewed code for this release; in addition, the following |
| 663 | reviewers contributed their comments: |
| 664 | |
| 665 | Artful Robot - Rich Lott; Ben Mango; Betty Dolfing; Christian Wach; |
| 666 | CiviCoop - Jaap Jansma, Klaas Eikelboom; Coop SymbioTIC - Samuel Vanhove; |
| 667 | Freeform Solutions - Herb van den Dool; Fuzion - Jitendra Purohit, Peter Davis; |
| 668 | Greenpeace Central and Eastern Europe - Patrick Figel; |
| 669 | JMA Consulting - Joe Murray, Monish Deb; Lighthouse Consulting and |
| 670 | Design - Brian Shaughnessy; Mikey O'Toole; Semper IT - Karin Gerritsen; |
| 671 | Tadpole Collective - Kevin Cristiano; tapashdatta; |
| 672 | Third Sector Design - William Mortada; Wikimedia Foundation - Elliott Eggleston |