Development issueshttps://lab.civicrm.org/groups/dev/-/issues2021-02-07T05:09:50Zhttps://lab.civicrm.org/dev/core/-/issues/2368xdebug_time_index() is incompatible with step-debugging in xdebug 3.02021-02-07T05:09:50ZDaveDxdebug_time_index() is incompatible with step-debugging in xdebug 3.0In xdebug 3.0 they changed some things. There's now an xdebug.mode setting you need to set instead of remote_enable etc. The default value is `develop`, and then the function xdebug_time_index() is available. But for some reason if you s...In xdebug 3.0 they changed some things. There's now an xdebug.mode setting you need to set instead of remote_enable etc. The default value is `develop`, and then the function xdebug_time_index() is available. But for some reason if you set the value to `debug`, which you need for step-debugging, then you get:
`Function must be enabled in php.ini by setting 'xdebug.mode' to 'develop'`
This might be a bug in xdebug itself, but regardless I don't see anywhere where this gets used. It's coming from https://github.com/civicrm/civicrm-core/blob/388745c7b82c2b0114e88ca9510d7a8c450689a1/Civi/API/Subscriber/DebugSubscriber.php#L76.
Is it used in CI/Jenkins?https://lab.civicrm.org/dev/core/-/issues/2367Possible wp regression on package having git repo2023-06-21T05:03:20ZeileenPossible wp regression on package having git repoI just downloaded , unzipped & commited the wp 5.34.0 release and found that it committed the following as a submodule - implying we are shipping with the .git folder
civicrm/vendor/pear/validate_finance_creditcard
I had deleted the fo...I just downloaded , unzipped & commited the wp 5.34.0 release and found that it committed the following as a submodule - implying we are shipping with the .git folder
civicrm/vendor/pear/validate_finance_creditcard
I had deleted the folder before unzipping so it was not pre-existing.
This could cause issues for people who use git in their deployment workflow
I have not checked other CMS
@totten @seamusleehttps://lab.civicrm.org/dev/core/-/issues/2366php 7.4 - get_magic_quotes_gpc() deprecated in IDS_Monitor2021-04-13T00:10:20ZDaveDphp 7.4 - get_magic_quotes_gpc() deprecated in IDS_Monitor`Deprecated function: Function get_magic_quotes_gpc() is deprecated in IDS_Monitor->_detect() (line 338 of ...\vendor\civicrm\civicrm-packages\IDS\Monitor.php).`
Also line 342.
Function will be removed in php 8.
Hmm. This package is v...`Deprecated function: Function get_magic_quotes_gpc() is deprecated in IDS_Monitor->_detect() (line 338 of ...\vendor\civicrm\civicrm-packages\IDS\Monitor.php).`
Also line 342.
Function will be removed in php 8.
Hmm. This package is very old.5.37.0https://lab.civicrm.org/dev/core/-/issues/2365Delay on rendering contribution dashboard charts seems unnecessary2021-02-14T23:07:07ZDaveDDelay on rendering contribution dashboard charts seems unnecessaryIt's in the code on purpose to delay 1.5 seconds. Maybe there used to be a reason?
And also what will happen sometimes is I'll start to click on one of the rows before the chart has loaded and then the page will jump and it will click s...It's in the code on purpose to delay 1.5 seconds. Maybe there used to be a reason?
And also what will happen sometimes is I'll start to click on one of the rows before the chart has loaded and then the page will jump and it will click something else I didn't want.5.36.0https://lab.civicrm.org/dev/core/-/issues/2364Some api calls no longer give an error when e.g. a database error happens2023-07-21T05:03:19ZDaveDSome api calls no longer give an error when e.g. a database error happensI've marked it regression but it's not a usual type of regression. It has more to do with error handling and that some types of calls won't themselves generate errors in unit tests anymore. Or for example instead of an error on the scree...I've marked it regression but it's not a usual type of regression. It has more to do with error handling and that some types of calls won't themselves generate errors in unit tests anymore. Or for example instead of an error on the screen, a dropdown list would just be empty.
It turns out there's two things going on here. The complicated one first:
In https://github.com/civicrm/civicrm-core/pull/19323 the way that pear, in particular pear::DB, generates errors was changed to use exceptions instead of PEAR_Error, which overall is a good thing.
However the API catches PEAR_Exceptions (not Errors) in [Civi\API\Kernel](https://github.com/civicrm/civicrm-core/blob/338ca6e9f364cf9c9d2a15d5318cb71a389dec43/Civi/API/Kernel.php#L84):
```php
catch (\Exception $e) {
if ($apiRequest) {
$this->dispatcher->dispatch('civi.api.exception', new ExceptionEvent($e, NULL, $apiRequest, $this));
}
if ($e instanceof \PEAR_Exception) {
$err = $this->formatPearException($e, $apiRequest);
```
Sometimes this is ok and you won't notice any difference in what happens later, but it depends on how the caller handles `$result['is_error']`.
For example, calls to getoptions or getfields go through [metadata something](https://github.com/civicrm/civicrm-core/blob/338ca6e9f364cf9c9d2a15d5318cb71a389dec43/api/v3/Generic.php#L516)
```php
$options = civicrm_api($apiRequest['entity'], 'getoptions', ['version' => 3, 'field' => $fieldname, 'context' => $context]);
if (isset($options['values']) && is_array($options['values'])) {
$metadata[$fieldname]['options'] = $options['values'];
}
```
If a db error occurs during that api call, it used to bubble up and you'd see it, especially during unit tests. Now it still logs it (at the above `formatPearException` in Kernel), but then silently continues on.
So at first glance you might say that metadata-something should just check for is_error. That does "fix" that particular spot but now let's look at the second part. I haven't looked at every type of api call, but for example a civicrm_api3(contact.get) isn't affected because it will end up hitting [api.php](https://github.com/civicrm/civicrm-core/blob/338ca6e9f364cf9c9d2a15d5318cb71a389dec43/api/api.php#L133) and so check is_error and throw an exception as expected:
```php
if (is_array($result) && !empty($result['is_error'])) {
throw new CiviCRM_API3_Exception($result['error_message'], CRM_Utils_Array::value('error_code', $result, 'undefined'), $result);
}
```
But note that there is a difference between calling `civicrm_api` with param version=3, as what happens in the metadata-something, and calling `civicrm_api3`. If I call contact.get using just civicrm_api, it does NOT check the is_error result and you get the silence. I don't know if this is on purpose because of differences with api4, but if so, then it could check $params['version'] and if it's 3 then check is_error. It looks a bit messy, but it maybe depends what the original reason is for not checking is_error.
```patch
diff --git a/api/api.php b/api/api.php
index be1946db37..66d5ccc82d 100644
--- a/api/api.php
+++ b/api/api.php
@@ -19,6 +19,13 @@
* @return array|int
*/
function civicrm_api(string $entity, string $action, array $params) {
+ if ($params['version'] == 3) {
+ $result = \Civi::service('civi_api_kernel')->runSafe($entity, $action, $params);
+ if (is_array($result) && !empty($result['is_error'])) {
+ throw new CiviCRM_API3_Exception($result['error_message'], CRM_Utils_Array::value('error_code', $result, 'undefined'), $result);
+ }
+ return $result;
+ }
return \Civi::service('civi_api_kernel')->runSafe($entity, $action, $params);
}
```https://lab.civicrm.org/dev/core/-/issues/2363Mailings are missing from Find Mailings screen on multisite2022-03-03T23:30:54ZandyburnsMailings are missing from Find Mailings screen on multisiteFor non-administrators on multisite, the find mailings screen will stop showing mailings. If I switch to that user while on that page > run cv flush and then refresh the listing shows up.
However, running cv flush alone does not bring t...For non-administrators on multisite, the find mailings screen will stop showing mailings. If I switch to that user while on that page > run cv flush and then refresh the listing shows up.
However, running cv flush alone does not bring the listing back. I'm not sure how to debug further. In trying to figure out when this started, I see my first report of it on 9/9/2020 if we can trace it to a civi upgrade.
![no-mailings](/uploads/4bf1bb4aa6c14f8d03fffb7cffe81359/no-mailings.png)https://lab.civicrm.org/dev/core/-/issues/2362The field 'rule_length' doesn't exist2021-02-10T12:11:33Zmagnolia61The field 'rule_length' doesn't existIt has been a while since I edited our dedupe rules so I do not know for how long we have had this problem but using 5.34 (drupal 7.78) when editing a dedupe rule I get the message:
`The field 'rule_length' doesn't exist.`
The contents ...It has been a while since I edited our dedupe rules so I do not know for how long we have had this problem but using 5.34 (drupal 7.78) when editing a dedupe rule I get the message:
`The field 'rule_length' doesn't exist.`
The contents of my civicrm_dedupe_rule table look like this, so it seems to be fine:
![deduperule](/uploads/2f1dd56044fd4d7f97515d4164b44df0/deduperule.png)
I tried to edit both rules where the value for rule_length is currently set or NULLhttps://lab.civicrm.org/dev/core/-/issues/2361SearchKit - group by query, add fields for aggregated value in Form Builder2021-02-17T13:34:23ZsamuelsovSearchKit - group by query, add fields for aggregated value in Form BuilderIt would be good to have the ability for the end-user to filter on the actual columns value of a search. Even better if we are able to filter on any column, displayed or not to the user.
For example, if we do a column to display the sum...It would be good to have the ability for the end-user to filter on the actual columns value of a search. Even better if we are able to filter on any column, displayed or not to the user.
For example, if we do a column to display the sum of total donation amount for each contact, the end-user should be able to add a filter on the sum.
One simple real example of search I would like to reproduce:
![ksnip_20210204-175019](/uploads/ed9ad9f3d2ba37c9f9e5d74873e0b511/ksnip_20210204-175019.png)https://lab.civicrm.org/dev/core/-/issues/2360SearchKit : use of rows in query cause mysql errors2021-02-22T22:07:08ZsamuelsovSearchKit : use of rows in query cause mysql errorsWhen doing a Group by in the query, and displaying the results with a pager, I get this error :
```
$Fatal Error Details = Array
(
[callback] => Array
(
[0] => CRM_Core_Error
[1] => exceptionHandler
...When doing a Group by in the query, and displaying the results with a pager, I get this error :
```
$Fatal Error Details = Array
(
[callback] => Array
(
[0] => CRM_Core_Error
[1] => exceptionHandler
)
[code] => -2
[message] => DB Error: syntax error
[mode] => 16
[debug_info] => SELECT count(*) AS `c` FROM ( SELECT `a`.`id` AS `id`
FROM civicrm_contact a
WHERE (`a`.`is_deleted` = "0")
HAVING (`id` IS NOT NULL)
) AS rows [nativecode=1064 ** You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'rows' at line 5]
[type] => DB_Error
[user_info] => SELECT count(*) AS `c` FROM ( SELECT `a`.`id` AS `id`
FROM civicrm_contact a
WHERE (`a`.`is_deleted` = "0")
HAVING (`id` IS NOT NULL)
) AS rows [nativecode=1064 ** You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'rows' at line 5]
[to_string] => [db_error: message="DB Error: syntax error" code=-2 mode=callback callback=CRM_Core_Error::exceptionHandler prefix="" info="SELECT count(*) AS `c` FROM ( SELECT `a`.`id` AS `id`
FROM civicrm_contact a
WHERE (`a`.`is_deleted` = "0")
HAVING (`id` IS NOT NULL)
) AS rows [nativecode=1064 ** You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'rows' at line 5]"]
)
```https://lab.civicrm.org/dev/core/-/issues/2359Drupal - PHP Deprecated: Array and string offset access syntax with curly br...2021-09-14T03:52:55ZRar9Drupal - PHP Deprecated: Array and string offset access syntax with curly braces is deprecatedWith Drupal9 Php 7.4.14 and civicrm 5.34 the following extension I use are causing trouble due to PHP curly backets
PHP Deprecated: Array and string offset access syntax with curly braces is deprecated in /web/sites/default/files/civic...With Drupal9 Php 7.4.14 and civicrm 5.34 the following extension I use are causing trouble due to PHP curly backets
PHP Deprecated: Array and string offset access syntax with curly braces is deprecated in /web/sites/default/files/civicrm/ext/uk.co.vedaconsulting.gdpr/gdpr.civix.php on line 246
~~PHP Deprecated: Array and string offset access syntax with curly braces is deprecated in /web/sites/default/files/civicrm/ext/nz.co.fuzion.civitoken/civitoken.civix.php on line 246~~
~~PHP Deprecated: Array and string offset access syntax with curly braces is deprecated in /web/sites/default/files/civicrm/ext/org.civicrm.flexmailer/flexmailer.civix.php on line 247~~
PHP Deprecated: Array and string offset access syntax with curly braces is deprecated in /web/sites/default/files/civicrm/ext/org.civicrm.shoreditch/shoreditch.civix.php on line 246
PHP Deprecated: Array and string offset access syntax with curly braces is deprecated in /web/sites/default/files/civicrm/ext/eu.tttp.group2summary/group2summary.civix.php on line 133
PHP Deprecated: Array and string offset access syntax with curly braces is deprecated in /web/sites/default/files/civicrm/ext/uk.co.vedaconsulting.mosaico/mosaico.civix.php on line 247https://lab.civicrm.org/dev/core/-/issues/2358Broken Smartgroup status display shows mystery smartgroup2023-06-21T05:03:19Zmagnolia61Broken Smartgroup status display shows mystery smartgroupIn my install this is the second time I delete a custom field and end up with a mystery smart group message in the status display.
![smartgroup-problems](/uploads/cc75cb10c43ed769be25c3585a7ddd31/smartgroup-problems.png)
When I hover t...In my install this is the second time I delete a custom field and end up with a mystery smart group message in the status display.
![smartgroup-problems](/uploads/cc75cb10c43ed769be25c3585a7ddd31/smartgroup-problems.png)
When I hover the pencil is shows: https://www.mydomain.nl/civicrm/contact/search/advanced??reset=1&ssID=1065<br><br>
When I hover the gearbox it links to: https://www.mydomain.nl/civicrm/group??reset=1&action=update&id=
Is this an edge case? Can the display be improved? Is it just that I have a rogue saved search (id 1065) that I can safely delete? Why does this show up in the first place? Questions...https://lab.civicrm.org/dev/core/-/issues/2357CiviCRM Dedupe Rules, default rules are incorrectly labelled as "and" when ea...2023-03-18T04:18:24Zjustinfreeman (Agileware)CiviCRM Dedupe Rules, default rules are incorrectly labelled as "and" when each rule is actually "or" eg. "Name and Email" should be "Name OR Email". Use of Name is ambiguous. Add "Nickname" to default Organisation dedupe rulesCiviCRM Dedupe Rules, default rules are incorrectly labelled as "and" when each rule is actually "or" eg. "Name and Email" should be "Name OR Email". Use of Name is ambiguous. Add "Nickname" to default Organisation dedupe rules.
Additio...CiviCRM Dedupe Rules, default rules are incorrectly labelled as "and" when each rule is actually "or" eg. "Name and Email" should be "Name OR Email". Use of Name is ambiguous. Add "Nickname" to default Organisation dedupe rules.
Additionally, Name is ambiguous in the context of Household and Organisation Contacts. Should be Household Name and Organisation Name. Organisations for example have Organisation Name and Nickname.
Suggested changes:
1. Change label to use "or" to match the dedupe criteria when or logic applies.
2. Remove ambiguity and be explicit about Name, ie. Household Name, Organisation Name and for Individuals: First Name and Last Name.
3. Add Nickname field to default Organisation dedupe rules.
![Screenshot_20210204_090434](/uploads/0c5b3b687825535aea7e8f0fdc814bf7/Screenshot_20210204_090434.png)
Agileware Ref: CIVICRM-1660https://lab.civicrm.org/dev/drupal/-/issues/155Installer does not recognize https urls when installing and setting civicrm.s...2021-02-04T20:02:47ZHeneryHInstaller does not recognize https urls when installing and setting civicrm.settings.php variablesTwo instances of url are in the settings file and when I install on an https site I need to edit the file manually to change the http to https.
Can the installer detect this and set the proper URL?Two instances of url are in the settings file and when I install on an https site I need to edit the file manually to change the http to https.
Can the installer detect this and set the proper URL?https://lab.civicrm.org/dev/core/-/issues/2356Case entityRef doesn't let you choose by typing case id2021-02-24T21:55:26ZDaveDCase entityRef doesn't let you choose by typing case idI keep meaning to get back to this. Unlike contacts, where the id is almost purely an internal thing, the case id is often publicly external and can be used as the identifier. In a case entityRef, such as in the File-On-Case dialog, you ...I keep meaning to get back to this. Unlike contacts, where the id is almost purely an internal thing, the case id is often publicly external and can be used as the identifier. In a case entityRef, such as in the File-On-Case dialog, you can't select by typing the id.5.36.0https://lab.civicrm.org/dev/core/-/issues/2355Notice: Undefined property: CRM_Core_DAO::$_context in CRM_Utils_PagerAToZ::c...2021-02-03T21:06:23ZDaveDNotice: Undefined property: CRM_Core_DAO::$_context in CRM_Utils_PagerAToZ::createLinks() on contribution page listingIt's very recent. Coming from https://github.com/civicrm/civicrm-core/pull/19472
Also on Manage Events.It's very recent. Coming from https://github.com/civicrm/civicrm-core/pull/19472
Also on Manage Events.5.35.0https://lab.civicrm.org/dev/drupal/-/issues/154Proposal - fix for How do I add CiviCRM Activity attachment to View2021-02-04T19:20:09ZeileenProposal - fix for How do I add CiviCRM Activity attachment to ViewI'm adding this gitlab to track https://github.com/civicrm/civicrm-drupal/pull/382 which I'm going to close as it stagnated 4 years agoI'm adding this gitlab to track https://github.com/civicrm/civicrm-drupal/pull/382 which I'm going to close as it stagnated 4 years agohttps://lab.civicrm.org/dev/core/-/issues/2354CiviCRM membership renewals, when the Contribution is pending pay later, the ...2024-01-06T00:53:42Zjustinfreeman (Agileware)CiviCRM membership renewals, when the Contribution is pending pay later, the Membership Receipt On-line and Off-line message templates include the previous membership term not the renewed term which confuses membersCiviCRM membership renewals, when the Contribution is pending pay later, the "Memberships - Receipt (on-line)" and "Memberships - Signup and Renewal Receipts (off-line)" message templates include the previous membership term not the rene...CiviCRM membership renewals, when the Contribution is pending pay later, the "Memberships - Receipt (on-line)" and "Memberships - Signup and Renewal Receipts (off-line)" message templates include the previous membership term not the renewed term which confuses members. This does not occur when the membership is paid on-line and Contribution completed.
Example in the screenshot below shows someone renewning their membership in 7th June 2018, but the receipt they received still has the old membership end date. It is expected to show the renewed term.
![Screenshot_20210203_155253](/uploads/9bf822d1e31435c89bd37d1c746b1771/Screenshot_20210203_155253.png)
When discussing with users, they have mentioned that it would be more useful to show their members only the new term that they are renewing for, not the full length of the membership.
Agileware Ref: CIVICRM-16595.69.0https://lab.civicrm.org/dev/translation/-/issues/65Remove legacy php money_format use, switch to brickmoney2021-06-07T01:42:08ZeileenRemove legacy php money_format use, switch to brickmoneyPhp 7.4 deprecated the money_format function and we need to move off it to fully support php 7.4 (which we are priortising now). We chose brickmoney as the replacement library.
The main usage is in the CRM_Utils_Money::format() library ...Php 7.4 deprecated the money_format function and we need to move off it to fully support php 7.4 (which we are priortising now). We chose brickmoney as the replacement library.
The main usage is in the CRM_Utils_Money::format() library - this function has a lot of alternate functions depending on input params and we have been working to use more specific functions
I think in the end the main format function would support 3 parameters
- amount (as a float or number)
- currency (as a string)
- use site separators (bool)
The first 2 are pretty straight forward. The latter is the idea that if you are looking at a table of donations you want consistent thousand & decimal separators, currency independent. But if you are presenting data front end you want the selection of Norwegian Kroner to also trigger a switch to appropriate formatting on the page
Some discrete steps we can take are
1) instead of calling the function with the only number param call the inner function directly
```
if ($onlyNumber) {
$amount = self::formatLocaleNumericRoundedByCurrency($amount, $currency);
return $amount;
}
```
2) do the same for calls that pass $format = '%a' - which has the same impact. (if currency is unknown formatLocaleNumericRoundedByPrecision is an option)
3) fully remove / hard-code the deprecated $moneyValueFormat setting and parameter
```
if (CRM_Core_Config::singleton()->moneyvalueformat !== '%!i') {
CRM_Core_Error::deprecatedWarning('Having a Money Value format other than !%i is deprecated, please report this on GitLab with the relevant moneyValueFormat you use.');
}
```
4) actually replace the call to money_format.....Monish DebMonish Debhttps://lab.civicrm.org/dev/core/-/issues/2353Searchkit - operator issue2021-02-21T00:06:11ZeileenSearchkit - operator issueThe afforms created from searchkit use the LIKE '%x%' operator - which means they are basically unusable for wmf for 2 reasons
- unindexed searches generally take 30 seconds for us
- the number of results returned is too great
The work ...The afforms created from searchkit use the LIKE '%x%' operator - which means they are basically unusable for wmf for 2 reasons
- unindexed searches generally take 30 seconds for us
- the number of results returned is too great
The work around for advanced search (etc) is to use the setting includeWildCardInName to decide about the preceding %
A better option / more complete solution would be to do what views does and allow the operator to be selected (per field) when creating the afform. Views also allows the operator to be optionally exposed, which is nice
@colemanw this is as discussedhttps://lab.civicrm.org/dev/core/-/issues/2352UF Settings page for Views CiviCRM integration should not have backticks for ...2021-02-01T20:27:10ZherbdoolUF Settings page for Views CiviCRM integration should not have backticks for BackdropBackdrop now supports MySQL 8 which means the "hackish" support for Views integration has changed. https://github.com/backdrop/backdrop-issues/issues/4745
It no longer works with backticks. Only this works:
```
'abc_civi.',
```Backdrop now supports MySQL 8 which means the "hackish" support for Views integration has changed. https://github.com/backdrop/backdrop-issues/issues/4745
It no longer works with backticks. Only this works:
```
'abc_civi.',
```5.35.0