CiviCRM Core issueshttps://lab.civicrm.org/dev/core/-/issues2023-01-05T02:18:09Zhttps://lab.civicrm.org/dev/core/-/issues/4022PHP 7.4, 8+ TypeError: array_flip(): Argument #1 ($array) must be of type arr...2023-01-05T02:18:09ZeldonthianPHP 7.4, 8+ TypeError: array_flip(): Argument #1 ($array) must be of type array, string givenOverview
----------------------------------------
Fresh install seemed to work, after going through checklist and setting up preferences,
somehow the search preferences page now throws this error. not sure what the exact cause is.
http...Overview
----------------------------------------
Fresh install seemed to work, after going through checklist and setting up preferences,
somehow the search preferences page now throws this error. not sure what the exact cause is.
https://civicrm.stackexchange.com/q/43060/14046
Reproduction steps
----------------------------------------
This seems to come up whenever ANY of the options are changed and attempting to save on search preferences page. i.e., custom fields, search options or quick search fields selection/deselection, reorder, etc.
Current behaviour
----------------------------------------
upon saving any changes on the search preferences page.
go back to the page, all ordering gone, default fields only, and selections.. just click save, and things begin to work as first install. Can not select/deselect any field to be saved. new selections are not saved..
```
TypeError: array_flip(): Argument #1 ($array) must be of type array, string given in /code/vendor/civicrm/civicrm-core/CRM/Admin/Form/SettingTrait.php on line 380 #0 /code/vendor/civicrm/civicrm-core/CRM/Admin/Form/SettingTrait.php(380): array_flip('\x01sort_name\x01cont...')
#1 /code/vendor/civicrm/civicrm-core/CRM/Admin/Form/SettingTrait.php(224): CRM_Admin_Form_Setting::reorderSortableOptions('quicksearch_opt...', Array)
#2 /code/vendor/civicrm/civicrm-core/CRM/Admin/Form/Setting.php(66): CRM_Admin_Form_Setting->addFieldsDefinedInSettingsMetadata()
#3 /code/vendor/civicrm/civicrm-core/CRM/Admin/Form/Setting/Search.php(47): CRM_Admin_Form_Setting->buildQuickForm()
#4 /code/vendor/civicrm/civicrm-core/CRM/Core/Form.php(689): CRM_Admin_Form_Setting_Search->buildQuickForm()
#5 /code/vendor/civicrm/civicrm-core/CRM/Core/QuickForm/Action/Display.php(76): CRM_Core_Form->buildForm()
#6 /code/vendor/civicrm/civicrm-packages/HTML/QuickForm/Controller.php(203): CRM_Core_QuickForm_Action_Display->perform(Object(CRM_Admin_Form_Setting_Search), 'display')
#7 /code/vendor/civicrm/civicrm-packages/HTML/QuickForm/Page.php(103): HTML_QuickForm_Controller->handle(Object(CRM_Admin_Form_Setting_Search), 'display')
#8 /code/vendor/civicrm/civicrm-core/CRM/Core/Controller.php(355): HTML_QuickForm_Page->handle('display')
#9 /code/vendor/civicrm/civicrm-core/CRM/Utils/Wrapper.php(98): CRM_Core_Controller->run()
#10 /code/vendor/civicrm/civicrm-core/CRM/Core/Invoke.php(292): CRM_Utils_Wrapper->run('CRM_Admin_Form_...', 'Search Preferen...', Array)
#11 /code/vendor/civicrm/civicrm-core/CRM/Core/Invoke.php(69): CRM_Core_Invoke::runItem(Array)
#12 /code/vendor/civicrm/civicrm-core/CRM/Core/Invoke.php(36): CRM_Core_Invoke::_invoke(Array)
#13 /code/web/modules/contrib/civicrm/src/Civicrm.php(88): CRM_Core_Invoke::invoke(Array)
#14 /code/web/modules/contrib/civicrm/src/Controller/CivicrmController.php(80): Drupal\civicrm\Civicrm->invoke(Array)
#15 [internal function]: Drupal\civicrm\Controller\CivicrmController->main(Array, '')
#16 /code/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(123): call_user_func_array(Array, Array)
#17 /code/web/core/lib/Drupal/Core/Render/Renderer.php(564): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}()
#18 /code/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(124): Drupal\Core\Render\Renderer->executeInRenderContext(Object(Drupal\Core\Render\RenderContext), Object(Closure))
#19 /code/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(97): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext(Array, Array)
#20 /code/vendor/symfony/http-kernel/HttpKernel.php(169): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}()
#21 /code/vendor/symfony/http-kernel/HttpKernel.php(81): Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object(Symfony\Component\HttpFoundation\Request), 1)
#22 /code/web/core/lib/Drupal/Core/StackMiddleware/Session.php(58): Symfony\Component\HttpKernel\HttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#23 /code/web/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(48): Drupal\Core\StackMiddleware\Session->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#24 /code/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(106): Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#25 /code/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(85): Drupal\page_cache\StackMiddleware\PageCache->pass(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#26 /code/web/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(48): Drupal\page_cache\StackMiddleware\PageCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#27 /code/web/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(51): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#28 /code/vendor/stack/builder/src/Stack/StackedHttpKernel.php(23): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#29 /code/web/core/lib/Drupal/Core/DrupalKernel.php(709): Stack\StackedHttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
#30 /code/web/index.php(19): Drupal\Core\DrupalKernel->handle(Object(Symfony\Component\HttpFoundation\Request))
#31 {main}
```
Expected behaviour
----------------------------------------
Search preferences should be able to be saved with changes.. and accessible at
civicrm/admin/setting/search?reset=1
Environment information
----------------------------------------
* __CiviCRM: 5.55.2, 5.56
* __PHP: 7.4, 8.0, 8.1
* __CMS: Drupal 9.4.8
* __Database: MariaDB 10.4.25
* __Web Server: nginx/1.21.65.57.0https://lab.civicrm.org/dev/core/-/issues/3980SearchKit displays: be able to add description so end user knows the context2022-11-21T19:39:52ZherbdoolSearchKit displays: be able to add description so end user knows the contextCurrently on SearchKit displays we can set the name which ends up being used for the title and the URL. I've tried to add additional information there for end users so they understand the context of the results. E.g. "Only shows results ...Currently on SearchKit displays we can set the name which ends up being used for the title and the URL. I've tried to add additional information there for end users so they understand the context of the results. E.g. "Only shows results for the current campaign". But that's awkward to stuff that all into the title. And also means one has to be careful that on the first save *not* to add those notes to the name so as to prevent an ungainly URL.
(The other option is to embed the SK into an afform, but that's a lot of extra work for just a bit of description.)
So a separate description field would be ideal.https://lab.civicrm.org/dev/core/-/issues/3550Email to activity processing: New feature to make the creation of new contact...2022-06-11T14:50:44ZJamie Novick - CompucoEmail to activity processing: New feature to make the creation of new contacts "optional"**User story:**
- As an administrator
- When filing inbound emails
- I would like to configure whether CiviCRM will create a new contact where a contact does not already exist within the system
- So that I can ensure that new contacts a...**User story:**
- As an administrator
- When filing inbound emails
- I would like to configure whether CiviCRM will create a new contact where a contact does not already exist within the system
- So that I can ensure that new contacts are not created in the system when filing an email.
- In the situation of a case email where the email has a valid Case ID or Case token in the subject line the email should still be filed to a case, even if no contacts are matched.
**How it works currently:**
Currently, when CiviCRM performs email to activity processing, Civi will search CiviCRM for a contact with the relevant email address in the From / To / CC fields and then assign the created activity accordingly.
When CiviCRM cannot find a contact with a relevant email address, it simply creates a new "stub" contact with the email address.
**The problem**
For multiple reasons this is might not be desirable behaviour:
This is a security risk, as in most cases CiviCRM email-activity processing works off a mailbox, that might need to be public. As such it is possible that an unscrupulous third party may chose to spam your mailbox and thus spam your CRM with unwanted emails and content. Whilst this can be mitigated by having your automated filing on a separate mailbox, it might be preferable to simply only file the emails for contacts who already exist in your system, and to selectively add the rest.
Also, from a GDPR perspective it may not be desirable to hold the details of the persons who sent an email, whilst the contents of the email might be important (i.e. the attachments) especially in a casework context.
**Proposed solution:**
Add an additional option to the email to activity processing configurations (civicrm/admin/mailSettings?action=add&reset=1)
- When "Used For?" = Email to activity processing
- Show an additional option:
- "Do not create new contacts when filing emails"
- Checkbox
- Default null
- Help:
- If this option is enabled, CiviCRM will not create new contacts when filing emails.
- The email should also always be filed as an activity.
If checked:
- When CiviCRM checks for a matching contact, if no matching contact is found it will not create one and the email is skipped
- unless the email has a valid Case ID or Case token in the subject line, in which it will still be filed against the case, but no contacts will be linked to the email.5.31.0https://lab.civicrm.org/dev/core/-/issues/3389Implement tests for Event Registration pages2024-01-11T05:03:25Zmattwiremjw@mjwconsult.co.ukImplement tests for Event Registration pages`CRM/Event/Form/Registration/Register.php` needs to be refactored like `CRM/Contribute/Form/Contribution.php` so that we can implement tests on submit.
`CRM_Event_Form_Registration_Register::postProcess()` needs splitting up to call a n...`CRM/Event/Form/Registration/Register.php` needs to be refactored like `CRM/Contribute/Form/Contribution.php` so that we can implement tests on submit.
`CRM_Event_Form_Registration_Register::postProcess()` needs splitting up to call a new function `CRM_Event_Form_Registration_Register::submit()`.
Then we need to add `CRM_Event_Form_Registration_Register::testSubmit()` and write some tests to call this function.https://lab.civicrm.org/dev/core/-/issues/2941Follow-up task - Remove the CiviCRM Connections functionality from CiviCRM co...2024-03-21T05:03:26Zjustinfreeman (Agileware)Follow-up task - Remove the CiviCRM Connections functionality from CiviCRM core (Task 2 of 2) - Remove the codeThis is a follow-up task to https://lab.civicrm.org/dev/core/-/issues/2910 - which was changed to only remove the menu item from the menu as an intermediary step.
To complete this work, this task will remove the CiviCRM Connections func...This is a follow-up task to https://lab.civicrm.org/dev/core/-/issues/2910 - which was changed to only remove the menu item from the menu as an intermediary step.
To complete this work, this task will remove the CiviCRM Connections functionality from CiviCRM core. This concept was already approved on https://lab.civicrm.org/dev/core/-/issues/2910
Agileware Ref: CIVIBLD-286https://lab.civicrm.org/dev/core/-/issues/2766No way to distinguish the core and custom fields on Find and Merge Duplicate...2021-10-06T11:45:32ZyashodhaNo way to distinguish the core and custom fields on Find and Merge Duplicate Contacts pageThere is no way to distinguish the core and custom fields on _Find and Merge Duplicate Contacts_ page.
This is particularly confusing as one of the clients had a custom field named email and created the rule using this custom field and e...There is no way to distinguish the core and custom fields on _Find and Merge Duplicate Contacts_ page.
This is particularly confusing as one of the clients had a custom field named email and created the rule using this custom field and every time someone registered an event which was configured with this aforesaid rule it was attributed to a new contact.
![email](/uploads/e6e8d94daf35826701d57495c24f46b8/email.png)
We should be using _Custom Field: Custom Group_ format to avoid confusion as we do elsewhere in Import mapping screens, etc.
![email](/uploads/0f5542067f01fdce77705353eb9d5628/email.png)yashodhayashodhahttps://lab.civicrm.org/dev/core/-/issues/2700Enhance test-drive bevhaviour and associated wording2023-09-08T05:03:14ZrebeccatregennaEnhance test-drive bevhaviour and associated wordingOverview
----------------------------------------
At the moment test-drive transactions are not recorded consistently for memberships and events nor does the current intro text for test-drive mode reflects what is actually happening.
Ex...Overview
----------------------------------------
At the moment test-drive transactions are not recorded consistently for memberships and events nor does the current intro text for test-drive mode reflects what is actually happening.
Example use-case
----------------------------------------
1. Join as a member with [&action=preview](https://dmaster.demo.civicrm.org/civicrm/contribute/transact?reset=1&id=2&action=preview)
1. Register for an event with [&action=preview](https://dmaster.demo.civicrm.org/civicrm/event/register?reset=1&action=preview&id=1)
Current behaviour
----------------------------------------
**Memberships**
The info text on the join pages states:
> This page is currently running in test-drive mode. Transactions will be sent to your payment processor's test server. No live financial transactions will be submitted. However, a contact record will be created or updated and a test contribution record will be saved to the database. Use obvious test contact names so you can review and delete these records as needed. **Test contributions are not visible on the Contributions tab, but can be viewed by searching for 'Test Contributions' in the CiviContribute search form.** Refer to your payment processor's documentation for information on values to use for test credit card number, security code, postal code, etc.
However both the contribution and membership entries are displayed on the contact's record on the necessary tab:
![active_membership](/uploads/f190e74461e0cd6f407ebdc9bc9dde5c/active_membership.png)
![active_contributions](/uploads/bdf686fecbeb65a82445a9a50fde492f/active_contributions.png)
**Events**
The info text on the event pages states:
> Test-drive Your Event Registration Page This page is currently running in test-drive mode. If this is a paid event, transactions will be sent to your payment processor's test server. No live financial transactions will be submitted. However, a contact record will be created or updated and test event registration and contribution records will be saved to the database. Use obvious test contact names so you can review and delete these records as needed. Refer to your payment processor's documentation for information on values to use for test credit card number, security code, postal code, etc.
As mentioned above, again also visible on the Contributions tab but unfortunately not displayed as a test registrations on the Events tab.
![active_events](/uploads/869dd4b91a008358ff7d8c7e8e9e9c21/active_events.png)
Proposed behaviour
----------------------------------------
Agree consistent behaviour, i.e.:
- Show the test event registration on the contact Event tab (as it does for membership)
- Update the info text to ensure it aligns with what is actually being shown / recorded where
Comments
----------------------------------------
Tested on dmaster.demo.civicrm.org 5.41.alpha1https://lab.civicrm.org/dev/core/-/issues/2189Activity Type cleanup2023-06-15T05:03:16ZJonGoldActivity Type cleanupCurrently, activity types can have a `component_id`, so they're not displayed unless that component is enabled. However, 4 activities definitively tied to components ("Bulk Email", "Mass SMS" for CiviMail; "Downloaded Invoice", "Emailed...Currently, activity types can have a `component_id`, so they're not displayed unless that component is enabled. However, 4 activities definitively tied to components ("Bulk Email", "Mass SMS" for CiviMail; "Downloaded Invoice", "Emailed Invoice" for CiviContribute) don't have a `component_id` assigned.
It also seems that "Meeting" and "Phone Call" are set as `is_reserved`, but there aren't any references to those in the codebase such that disabling or deleting them should affect a Civi install.JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/2177Recent drush requires updated symfony/finder2023-08-19T00:28:39ZfkohrtRecent drush requires updated symfony/finderWhile [installing](https://docs.civicrm.org/installation/en/latest/drupal8/#download) CiviCRM 5.31 on Drupal 8, composer had a problem during `composer require civicrm/civicrm-{core,packages,drupal-8}:'~5.31'`.
<details>
<summary>Consol...While [installing](https://docs.civicrm.org/installation/en/latest/drupal8/#download) CiviCRM 5.31 on Drupal 8, composer had a problem during `composer require civicrm/civicrm-{core,packages,drupal-8}:'~5.31'`.
<details>
<summary>Console output</summary>
```
./composer.json has been updated
Running composer update civicrm/civicrm-core civicrm/civicrm-packages civicrm/civicrm-drupal-8
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.
Problem 1
- civicrm/civicrm-core[5.31.0, ..., 5.32.x-dev] require symfony/finder ~3.0 || ~4.4 -> found symfony/finder[v3.0.0-BETA1, ..., 3.4.x-dev, v4.4.0-BETA1, ..., 4.4.x-dev] but the package is fixed to v5.1.8 (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.
- Root composer.json requires civicrm/civicrm-core ~5.31 -> satisfiable by civicrm/civicrm-core[5.31.0, 5.31.x-dev, 5.32.x-dev].
Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
```
</details>
I had previously installed `drush/drush:10.3.6` which requires `symfony/finder:5.1.8`. However, `civicrm/civicrm-core:~5.31` requires `symfony/finder ~3.0 || ~4.4`. This leads to the problem above. I had to use `composer require drush/drush:10.3.5` to proceed with the installation.
Maybe `civicrm-core` should be updated to require `symfony/finder:~5.1` as well?https://lab.civicrm.org/dev/core/-/issues/2063Eliminate "No extensions available for this version of CiviCRM"2020-09-29T20:07:08ZJonGoldEliminate "No extensions available for this version of CiviCRM"This error is a possible outcome of the "checkExtensions" system check. I propose we eliminate it:
* There's never going to be another version of CiviCRM that has no extensions available, so the message is wrong.
* The error pretty much...This error is a possible outcome of the "checkExtensions" system check. I propose we eliminate it:
* There's never going to be another version of CiviCRM that has no extensions available, so the message is wrong.
* The error pretty much exclusively happens when there's an error on the c.o side, like an outage.
* There are no actionable steps for someone receiving this message.
* My personal gripe: When c.o goes down, I get this message from a gazillion sites at once.
While I'm aware it's theoretically possible that someone could define an alternate extension directory source from c.o, to my knowledge that a) has never been done, b) if you do that, you shouldn't need a warning in the UI to tell you no extensions are available.
Happy to take this on if folks approve.5.31.0JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/1867Report time defaults to 12:00AM no matter what2020-07-16T21:08:49ZwortfmReport time defaults to 12:00AM no matter whatOverview
----------------------------------------
When entering a time range within a date selection, time reverts to 12:00AM. This makes it difficult to select a single day since even putting in 12:00AM to 11:59PM the report returns no...Overview
----------------------------------------
When entering a time range within a date selection, time reverts to 12:00AM. This makes it difficult to select a single day since even putting in 12:00AM to 11:59PM the report returns no results. WordPress 5.4.2 and CiviCRM 5.26.2
![civicrmResults](/uploads/6b16263085ee555e9159393423214f7c/civicrmResults.png)
![civicrmRange](/uploads/1243a86c5551d7ca0634dff246a0f58e/civicrmRange.png)
Inquired at https://civicrm.stackexchange.com/questions/36100/choose-by-date-range-always-at-1200am
Reproduction steps
----------------------------------------
1. Click on Select Date Range.
2. Select/Enter July 1, 2020 at 12:00AM until July 1, 2020 at 11:59PM.
3. No results are returned and the selection criteria is shown as going until July 1, 2020 at 12:00AM (see screen grab above)
Current behaviour
----------------------------------------
See Reproduction steps.
No error messages in browser, but the web console shows that date_format is undefined.
![civicrm_dateformat](/uploads/b243f322d1520189deef62123c60280d/civicrm_dateformat.png)
The query shows receive_date >= 20200701000000) AND ( receive_date <= 20200701000000
```
Expected behaviour
----------------------------------------
_What should happen._
Environment information
----------------------------------------
<!-- Some of the items below may not be relevant for every bug - if in doubt please include more information than you think is neccessary. -->
* __Browser:__All Browsers
* __CiviCRM:__ _Master/5.20.0/5.19.1/5.18.2/..._ <!-- If this problem relates to an upgrade, then specify both old and new versions -->
* __PHP:__7.3
* __CMS:__ WordPress 5.4.2
* __Database:__ MariaDB 10.4
* __Web Server:__ _Apache 2.4
Comments
----------------------------------------
This could entirely be some configuration incorrect, but was directed here by those on stackexchange.https://lab.civicrm.org/dev/core/-/issues/1587Show full description under select2 options2020-02-12T02:11:04ZMonish DebShow full description under select2 optionsOverview
----------------------------------------
Show full description under select2 options
Current behavior
----------------------------------------
Visit the export field option or Event name select2 filter in 'Find Participant' se...Overview
----------------------------------------
Show full description under select2 options
Current behavior
----------------------------------------
Visit the export field option or Event name select2 filter in 'Find Participant' search form. It trims the description with a teaser.
![Screen_Shot_2020-02-11_at_8.29.30_PM](/uploads/ec0400cff8072e1a25f31aeeda449b5f/Screen_Shot_2020-02-11_at_8.29.30_PM.png)
![Screen_Shot_2020-02-11_at_8.30.03_PM](/uploads/3237148bddd75af1a1fc497a9139990a/Screen_Shot_2020-02-11_at_8.30.03_PM.png)
Proposed behavior
----------------------------------------
Show the full description of select2 options. Make the change option by introducing a special attribute and handle accordingly in js and css to support that. For further details check next section.
Technical details
----------------------------------------
Introduce a special boolean setting attribute to select2 option array (in PHP) say ```fullDescription``` = TRUE/FALSE. Based on these setting it will add a CSS class say ```crm-select2-row-full-description``` via js and then make style changes to show full description.5.24.0Monish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/1559Use markdown in php docblocks2023-02-05T05:03:36ZcolemanwUse markdown in php docblocks**tl;dr:** I propose we standardize the format of our docblocks to use markdown.
To-date, docblocks in CiviCRM haven't been very visible (or very much of anything). The APIv4 Explorer is starting to change that. For example, this docblo...**tl;dr:** I propose we standardize the format of our docblocks to use markdown.
To-date, docblocks in CiviCRM haven't been very visible (or very much of anything). The APIv4 Explorer is starting to change that. For example, this docblock:
```php
/**
* ACL (Access Control List).
*
* An ACL record consists of:
*
* - an Operation (e.g. 'View' or 'Edit')
* - a set of Data that the operation can be performed on (e.g. a group of contacts)
* - and a Role that has permission to do this operation.
*
* Creating a new ACL requires at minimum a entity table, entity ID and object_table.
*
* @see https://docs.civicrm.org/user/en/latest/initial-set-up/permissions-and-access-control
* @package Civi\Api4
*/
class ACL extends Generic\DAOEntity {
```
Displays in the explorer like this:
![image](/uploads/2a04dad923b43fc4f5e739bef6feb064/image.png)
I've been doing my best to make them render nicely, for example it turns ticks into bullets, `@see` annotations into links, and double-line-breaks into paragraphs... but that's about it so far. It would be really nice if we could fully support markdown for formatting, lists, tables, code blocks, etc. etc.
Apparently using markdown in PHP docblocks is gaining popularity. [PHPStorm now supports it, as does PHPDocumentor](https://blog.jetbrains.com/phpstorm/2014/04/phpstorm-8-markdown-support-in-phpdoc-blocks/).
I suggest we jump on that bandwagon. If there's no objections I'll add a markdown parser to the APIv4 Explorer and start using markdown syntax in more docblocks.https://lab.civicrm.org/dev/core/-/issues/1166Update Country list: change Macedonia, Republic of into North Macedonia2019-12-03T08:07:43ZBetty DolfingUpdate Country list: change Macedonia, Republic of into North MacedoniaI understand ([see stackexchange question](https://civicrm.stackexchange.com/questions/31577/countries-up-to-date)) that the country list in CiviCRM is [maintained manually](https://github.com/civicrm/civicrm-core/blob/5.15.2/xml/templat...I understand ([see stackexchange question](https://civicrm.stackexchange.com/questions/31577/countries-up-to-date)) that the country list in CiviCRM is [maintained manually](https://github.com/civicrm/civicrm-core/blob/5.15.2/xml/templates/civicrm_country.tpl#L172).
In the iso 3166-1 list, Macedonia, Republic of is now called: **North Macedonia**
Can this be changed in the country list in CiviCRM?5.21.0seamusleeseamusleehttps://lab.civicrm.org/dev/core/-/issues/1160Events with templates but no custom field values don't save custom fields2021-04-07T01:44:01ZJonGoldEvents with templates but no custom field values don't save custom fieldsThis is closely related to core#553, but the fix for #553 doesn't solve this.
In core#553, if you have an event template that DOES specify values for custom fields, they don't get copied to a new event.
In this case, if you have an eve...This is closely related to core#553, but the fix for #553 doesn't solve this.
In core#553, if you have an event template that DOES specify values for custom fields, they don't get copied to a new event.
In this case, if you have an event template that does NOT specify values for custom fields, then any values you enter for custom fields are ignored.
This is true both with and without [PR #14063](https://github.com/civicrm/civicrm-core/pull/14063) so it's not an unreleased regression.https://lab.civicrm.org/dev/core/-/issues/882ACLs don't work on "Tab with table" custom field groups2023-05-31T05:03:19ZJonGoldACLs don't work on "Tab with table" custom field groupsTo replicate on master:
* Create a new role, "Read Only".
* Give the role only the "Access CiviCRM" permission.
* Create a new group "Read Only" of type "Access Control".
* Create a multi-record custom group with display type of "Tab wit...To replicate on master:
* Create a new role, "Read Only".
* Give the role only the "Access CiviCRM" permission.
* Create a new group "Read Only" of type "Access Control".
* Create a multi-record custom group with display type of "Tab with table".
* Create a new user, give them the "Read Only" role and place them in the "Read Only" group.
* Configure an ACL that grants "View" access to one or more contacts. Since "Edit own contact" is a special case, ensure that one of the contacts doesn't belong to the user.
* Configure an ACL that grants "View" access to the multi-record custom group.
Expected result:
* This user shouldn't be able to edit a contact's data.
Actual result:
* This user can edit custom fields that are on a "tab with table".
There's a few things that need fixing, I intend to move at least some of these forward:
* The template doesn't have a permission check on the "Add" button.
* The class doesn't have a permission check on the action links.
* The class doesn't have a permission check on postProcess.
Finally, the "Edit" ACL for custom fields don't seem to be respected - but this is out of scope for this issue.JonGoldJonGoldhttps://lab.civicrm.org/dev/core/-/issues/818CQ: Switch core forms to be Entity Forms2022-10-31T05:03:14ZeileenCQ: Switch core forms to be Entity FormsWe have switched some forms already to use the EntityFormTrait as part of the following goals
1) move data about the fields on the forms into the schema xml - this will be important to help us migrate away from quick form
2) support cus...We have switched some forms already to use the EntityFormTrait as part of the following goals
1) move data about the fields on the forms into the schema xml - this will be important to help us migrate away from quick form
2) support custom data on a wide range of entities - several entities already support custom data as a result of having been switched to entity forms - relationship type form, membership status, financial type, price set etc
3) support parameters passed through the url in a non ad-hoc way - we have a history of security issues are url parameters so any new retrieval should be stdised & we need to work to remove existing ones
4) support extension intervention in the fields displayed - this is particularly supported by the tpl changes in the entity form structure
5) generalised reduction in unecessary code
6) improving translation consistency
What is involved in the Entity Form is best understood by looking at existing examples but basically it consists of
- using the EntityFormTrait
- ensuring the relevant things are declared on the class to support that
- declaring all the fields that can be added through metadata in the metadata array
- working towards simplifying the tpl to a single line {include file="CRM/Core/Form/EntityForm.tpl"}
Generally in any change we can take steps towards this rather than fully implement ithttps://lab.civicrm.org/dev/core/-/issues/779Support token for participant id in scheduled reminder2021-10-12T02:22:06ZyashodhaSupport token for participant id in scheduled reminderCurrently, the participant id token is not available for scheduled reminder.
This is especially useful if the user need to be sent Self-service Registration Update forms
https://yoursite/civicrm/event/selfsvcupdate?reset=1&pid=xCurrently, the participant id token is not available for scheduled reminder.
This is especially useful if the user need to be sent Self-service Registration Update forms
https://yoursite/civicrm/event/selfsvcupdate?reset=1&pid=x5.43.0yashodhayashodhahttps://lab.civicrm.org/dev/core/-/issues/773Proposal: Don't allow deleting custom fields that are used in a smart group2022-11-07T05:03:58ZJonGoldProposal: Don't allow deleting custom fields that are used in a smart groupI'm inspired by [this SE question](https://civicrm.stackexchange.com/questions/28713/how-to-troubleshoot-expected-one-customfield-but-found-0-error/28731). I can't think of a reason why we'd allow someone to delete a custom field used i...I'm inspired by [this SE question](https://civicrm.stackexchange.com/questions/28713/how-to-troubleshoot-expected-one-customfield-but-found-0-error/28731). I can't think of a reason why we'd allow someone to delete a custom field used in a smart group. The downside is we'd need to use an unindexed search on `civicrm_saved search` (e.g. `LIKE %"custom_1"%`) but I'm guessing that most folks don't have thousands of smart groups, and this would happen fairly infrequently.https://lab.civicrm.org/dev/core/-/issues/767Add 'Cancelled / Refunded Date' and 'Cancellation / Refund Reason' in the Det...2019-03-04T13:47:10ZGhost UserAdd 'Cancelled / Refunded Date' and 'Cancellation / Refund Reason' in the Detail Contributions ReportAdd the fields and filters 'Cancelled / Refunded Date' and 'Cancellation / Refund Reason' in the Detail Contributions Report.Add the fields and filters 'Cancelled / Refunded Date' and 'Cancellation / Refund Reason' in the Detail Contributions Report.yashodhayashodha