CiviCRM Core issueshttps://lab.civicrm.org/dev/core/-/issues2022-06-11T14:55:55Zhttps://lab.civicrm.org/dev/core/-/issues/3608getRecipients() appears to use a WHERE clause as an ORDER BY clause2022-06-11T14:55:55ZkengetRecipients() appears to use a WHERE clause as an ORDER BY clauseSee https://github.com/civicrm/civicrm-core/commit/906298d3f63825adbee0e85963d89354edf8acf1#r30370554See https://github.com/civicrm/civicrm-core/commit/906298d3f63825adbee0e85963d89354edf8acf1#r303705545.8https://lab.civicrm.org/dev/core/-/issues/491Report results don't show inactive campaigns2019-03-13T20:07:10ZyashodhaReport results don't show inactive campaignsReport results don't show inactive campaigns. The results can be searched properly via *Find Contributions*.Report results don't show inactive campaigns. The results can be searched properly via *Find Contributions*.5.8yashodhayashodhahttps://lab.civicrm.org/dev/core/-/issues/481New Organization: There is no possible to uncheck in the field "Bulk Mailings?"2018-10-31T10:29:59ZPradeep Nayakpradpnayak@gmail.comNew Organization: There is no possible to uncheck in the field "Bulk Mailings?"1. Log in to CRM
2. Select menu item "Contacts"
3. Click submenu item "New Organization:"
4. Check in the field "Bulk Mailings?"
5. Try to uncheck in the field "Bulk Mailings?"
Result: There is no possible to uncheck in the field "Bulk...1. Log in to CRM
2. Select menu item "Contacts"
3. Click submenu item "New Organization:"
4. Check in the field "Bulk Mailings?"
5. Try to uncheck in the field "Bulk Mailings?"
Result: There is no possible to uncheck in the field "Bulk Mailings?"
![radiobutton](/uploads/c8ddaddbdaa180dc6a285585cef3021d/radiobutton.png)
Note: the same on New Individual. The same for editing (see edit_bulk.png).
![edit_bulk](/uploads/9bbc1bd9116817c6b6fb99af80bc8dec/edit_bulk.png)
Expected result: User should have a choice to check or uncheck in the field "Bulk Mailings?".
It may be a good idea to change the radio button on the check button in this field5.8https://lab.civicrm.org/dev/core/-/issues/477Print Summary is missing some contact info2018-10-29T20:49:47ZJonGoldPrint Summary is missing some contact infoFrom Stack Exchange: https://civicrm.stackexchange.com/q/27063/12
To replicate:
* Open any individual's contact.
* From the "Actions" button, select "Print Summary".
**Expected**
The contact's employer/job title should be in the print...From Stack Exchange: https://civicrm.stackexchange.com/q/27063/12
To replicate:
* Open any individual's contact.
* From the "Actions" button, select "Print Summary".
**Expected**
The contact's employer/job title should be in the print summary.
**Actual**
It's not.
The last line of `<civiroot>/templates/CRM/Contact/Page/View/Print.tpl` is:
```js
cj('#contact-summary' ).children(':first').remove();
```
The reason for this is lost to the ages, but I suspect this referred to some other DOM element that's long since been removed.
Personally I'd deprecate this whole functionality - but apparently folks are using it, so let's make it work.
If someone wants to mark this "concept: approved" I'll submit the PR.5.8https://lab.civicrm.org/dev/core/-/issues/474Missing log table warning on status page even if logging is disabled.2018-10-27T04:12:13ZjitendraMissing log table warning on status page even if logging is disabled.This is a rare case except the one raised in https://lab.civicrm.org/dev/core/issues/462.
The flow which can lead to this error is -
- Logging is enabled on the site which generates a list of log tables in the database.
- User now dis...This is a rare case except the one raised in https://lab.civicrm.org/dev/core/issues/462.
The flow which can lead to this error is -
- Logging is enabled on the site which generates a list of log tables in the database.
- User now disables the logging functionality on the site which now stops generating any more log tables.
- User create a custom set on the site which creates a new table in the database.
- The system status page notices a missing log table for the above and displays a warning.
The last step should also check if the logging is enabled on the site even if it is able to find some core log tables already present in the db.5.8jitendrajitendrahttps://lab.civicrm.org/dev/core/-/issues/472Allow for CiviCRM APIv3 Explorer to find API Examples in extensions in the fo...2018-10-30T22:03:00ZseamusleeAllow for CiviCRM APIv3 Explorer to find API Examples in extensions in the format of api/v3/examples/Entity just in the same format as core5.8https://lab.civicrm.org/dev/core/-/issues/463Add in support for Extension Utils when generating DAO files for Extensions2018-11-03T07:18:48ZseamusleeAdd in support for Extension Utils when generating DAO files for Extensions5.8https://lab.civicrm.org/dev/core/-/issues/461Duplicate Message template is generated when it is saved through schedule rem...2018-10-24T21:30:42ZjitendraDuplicate Message template is generated when it is saved through schedule reminder formTo reproduce,
- Open Sched Reminder form.
- Fill the values in mailing section.
- Click "Save as a new template" and hit save.
- check message template page -> Duplicate templates are created from a single save on the reminder form.To reproduce,
- Open Sched Reminder form.
- Fill the values in mailing section.
- Click "Save as a new template" and hit save.
- check message template page -> Duplicate templates are created from a single save on the reminder form.5.8jitendrajitendrahttps://lab.civicrm.org/dev/core/-/issues/460Fix malformed redirect URLs2018-11-09T01:01:30ZhaystackFix malformed redirect URLsThis is a bit of an edge case, but I have run into it once or twice. The `perform` method of `CRM_Core_QuickForm_Action_Jump` can produce invalid URLs. This happens when `$current->getAttribute('action')` is a URL ending in `?`. The resu...This is a bit of an edge case, but I have run into it once or twice. The `perform` method of `CRM_Core_QuickForm_Action_Jump` can produce invalid URLs. This happens when `$current->getAttribute('action')` is a URL ending in `?`. The resulting URL has `?&` in it, e.g.
`https://civicrm.latest/civicrm/event/register/?&_qf_ThankYou_display=true&qfKey=<some-key>`
This seems to cause Chrome to "fix" the URL and then redirect to the "fixed" URL:
`https://civicrm.latest/civicrm/event/register/?_qf_ThankYou_display=true&qfKey=<some-key>`
I'm not certain about this - particularly as I haven't tested in all browsers - but this redirect could be the cause of missing sessions in the Event Registration process. If the "fix" behaviour changed from browser to browser, this might also account for the slipperiness of repeating the issue.
Either way, the method shouldn't produce invalid URLs.5.8https://lab.civicrm.org/dev/core/-/issues/459Fix `crmURL` parameters in various templates2018-11-29T10:02:12ZhaystackFix `crmURL` parameters in various templatesIn Smarty templates, when the `q` parameter is prefixed with an ampersand, for example:
`{crmButton p='civicrm/contact/view/delete' q="&reset=1&delete=1&cid=$contactId" class="delete" icon="trash"}`
the resulting URL contains `&&` like...In Smarty templates, when the `q` parameter is prefixed with an ampersand, for example:
`{crmButton p='civicrm/contact/view/delete' q="&reset=1&delete=1&cid=$contactId" class="delete" icon="trash"}`
the resulting URL contains `&&` like this:
`http://civicrm.local/wp-admin/admin.php?page=CiviCRM&q=civicrm/contact/view/delete&&reset=1&delete=1&cid=202`
This happens in a number template files. PR to follow.5.8https://lab.civicrm.org/dev/core/-/issues/457Add new hook exportIds2018-10-27T04:12:13ZscardiniusAdd new hook exportIdsBecause of GDPR rules we have to save information that some data were exported.
Current hook https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_export/ is not enough because it returns data without id columns. It's hard to implem...Because of GDPR rules we have to save information that some data were exported.
Current hook https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_export/ is not enough because it returns data without id columns. It's hard to implement any sophisticated feature without id of objects.
One of such example you can find here https://github.com/veda-consulting/uk.co.vedaconsulting.gdpr/issues/157
The solution is new type of hook:
```php
CRM_Utils_Hook::exportIds($ids, $componentTable, $exportMode);
```5.8https://lab.civicrm.org/dev/core/-/issues/452Error when exporting CSV batch (PHP 7.1)2018-10-18T06:10:08ZlarynError when exporting CSV batch (PHP 7.1)Per https://civicrm.stackexchange.com/questions/26895/cant-view-exported-batches-datatables-warning
------
TLDR; PHP 7.1 crashes when exporting CSV batches due to an issue with undeclared array subdimensions.
PR is here: https://githu...Per https://civicrm.stackexchange.com/questions/26895/cant-view-exported-batches-datatables-warning
------
TLDR; PHP 7.1 crashes when exporting CSV batches due to an issue with undeclared array subdimensions.
PR is here: https://github.com/civicrm/civicrm-core/pull/129465.8https://lab.civicrm.org/dev/core/-/issues/443Fix Non-static method calls at CRM_Utils_Mail_Incoming class2018-10-24T20:56:26ZscardiniusFix Non-static method calls at CRM_Utils_Mail_Incoming classOn PHP7.1 class CRM_Utils_Mail_Incoming returns strict warnings due to inconsistency in function declarations
```
Strict warning: Non-static method CRM_Utils_Mail_Incoming::formatMailMultipart() should not be called statically w CRM_Uti...On PHP7.1 class CRM_Utils_Mail_Incoming returns strict warnings due to inconsistency in function declarations
```
Strict warning: Non-static method CRM_Utils_Mail_Incoming::formatMailMultipart() should not be called statically w CRM_Utils_Mail_Incoming::formatMailMultipart()(linia 83 z /srv/staging/ocal.stg.civicrm.pl/public/sites/all/modules/civicrm/CRM/Utils/Mail/Incoming.php).
```5.8https://lab.civicrm.org/dev/core/-/issues/436API Get action lookups for alphanumeric custom fields with option values with...2018-10-24T22:17:40ZjackrabbithannaAPI Get action lookups for alphanumeric custom fields with option values with uppercase characters fails to find contactsReplicable on https://dmaster.demo.civicrm.org
Create a custom field on a contact that is Alphanumeric and uses a Multi-Select widget (may be a condition for other custom field types / widgets as well)
Add a few options, but make at le...Replicable on https://dmaster.demo.civicrm.org
Create a custom field on a contact that is Alphanumeric and uses a Multi-Select widget (may be a condition for other custom field types / widgets as well)
Add a few options, but make at least one of the option values contain at least one uppercase character.
Update a contact, give the custom field value one of the options that has an uppercase character in the value.
Use the API anywhere, or use the API explorer, and do a Contact, get call, where custom_[id] = the option with the uppercase character.
No contacts will be returned.
Here where the custom field query is built, the param value for the custom field is made lowercase:
https://github.com/civicrm/civicrm-core/blob/master/CRM/Core/BAO/CustomQuery.php#L338
In this file
https://github.com/civicrm/civicrm-core/blob/master/CRM/Contact/BAO/Query.php#L5687
The operator RLIKE is updated to include the BINARY operator option
Which makes the clause case sensitive...
Introduced in this commit:
https://github.com/civicrm/civicrm-core/commit/a047568869892f9af65002c1709af1931f5f4b0d
This PR: https://github.com/civicrm/civicrm-core/pull/12364
So it looks like a fix for the search builder regex search, has broken the API Contact Get for custom fields with option values with uppercase characters.
This could affect other things?
I'm not sure how to make these two things gel, but surely querying via the CiviCRM API should work, or take precedence.
I'm happy to make a PR, but I'm not sure what is the best thing to do...
Do we really need to make the option value lowercase when building the custom field query where clause?5.8https://lab.civicrm.org/dev/core/-/issues/424‘Send Scheduled Reminders’ task - Time Out and Scalability issues2018-11-09T22:25:03Zmarcusjwilson‘Send Scheduled Reminders’ task - Time Out and Scalability issuesWhen trying to run the ‘Send Scheduled Reminders’ task for lapsing members in CiviCRM, the user experiences Time Outs and the Scheduled Job fails to complete.
The query appears to be very complex, and joins the membership table to itsel...When trying to run the ‘Send Scheduled Reminders’ task for lapsing members in CiviCRM, the user experiences Time Outs and the Scheduled Job fails to complete.
The query appears to be very complex, and joins the membership table to itself as well as joins to the relationships table (which is around half the size of the membership table) so it is pulling a lot of data. It actually examines hundreds of millions of rows throughout the process of running.
This is the query:
```
# Time: 180626 19:22:29
# User@Host: CLIENT_wpcvusr[CLIENT_wpcvusr] @ localhost [] Id: 34616
# Schema: CLIENT_civicrm Last_errno: 1160 Killed: 0
# Query_time: 345.664393 Lock_time: 0.000161 Rows_sent: 9035 Rows_examined: 237398638 Rows_affected: 0
# Bytes_sent: 425984
SET timestamp=1530037349;
SELECT cm.id AS owner_id, cm.contact_id AS owner_contact, m.id AS slave_id, m.contact_id AS slave_contact, cmt.relationship_type_id AS relation_type, rel.contact_id_a, rel.contact_id_b, rel.is_permission_a_b, rel.is_permission_b_a
FROM civicrm_membership m
LEFT JOIN civicrm_membership cm ON cm.id = m.owner_membership_id
LEFT JOIN civicrm_membership_type cmt ON cmt.id = m.membership_type_id
LEFT JOIN civicrm_relationship rel ON ( ( rel.contact_id_a = m.contact_id AND rel.contact_id_b = cm.contact_id AND rel.relationship_type_id = cmt.relationship_type_id )
OR ( rel.contact_id_a = cm.contact_id AND rel.contact_id_b = m.contact_id AND rel.relationship_type_id = cmt.relationship_type_id ) )
WHERE m.owner_membership_id IS NOT NULL AND
( rel.is_permission_a_b = 0 OR rel.is_permission_b_a = 0);
```
We have increased resources and Time Out settings on our server, and our server engineers also increased max_allowed_packet variable of MySQL so the queries could run faster. However, the Time Out still occurs.
So, it seems that this CiviCRM Send Scheduled Reminder task is not scaling to the current size of our member database (~12,000 membership records).5.8https://lab.civicrm.org/dev/core/-/issues/422Can't use advanced search to find survey results by result code2018-10-06T10:07:32ZjamieCan't use advanced search to find survey results by result codeIf you try to use advanced search to find survey results by the result code, you get no records and the Quill shows a confusing message:
```
No matches found for:
Activity targeted to ...AND...
Survey - Test ...AND...
Activity Result - ...If you try to use advanced search to find survey results by the result code, you get no records and the Quill shows a confusing message:
```
No matches found for:
Activity targeted to ...AND...
Survey - Test ...AND...
Activity Result - 'activity_result' or 'IN' or '' or '0' or '0' ...AND...
Activity Status In Scheduled, Completed
```5.8https://lab.civicrm.org/dev/core/-/issues/418Can't add relationship to group of search results if relationship type is any...2018-10-09T16:11:32ZjamieCan't add relationship to group of search results if relationship type is any to anyIf you create a relationship type that relates a contact of any type to a contact of any type, that relationship will not be available to select when adding a relationship to a group of search results.If you create a relationship type that relates a contact of any type to a contact of any type, that relationship will not be available to select when adding a relationship to a group of search results.5.8https://lab.civicrm.org/dev/core/-/issues/412Avoid truncated UTF-8 strings when using substr()2018-10-24T20:56:26ZjensschuppeAvoid truncated UTF-8 strings when using substr()[`CRM_Core_BAO_Mapping::getCustomGroupName()`](https://lab.civicrm.org/dev/core/blob/master/CRM/Core/BAO/Mapping.php#L1000-1002) truncates custom group names when longer than 10 characters using `substr()`, which causes multibyte charact...[`CRM_Core_BAO_Mapping::getCustomGroupName()`](https://lab.civicrm.org/dev/core/blob/master/CRM/Core/BAO/Mapping.php#L1000-1002) truncates custom group names when longer than 10 characters using `substr()`, which causes multibyte characters being cut in half when at the truncating position.
This should use `CRM_Utils_String::ellipsify()` instead, which utilises `mb_substr()`.
Maybe someone with more core code insight should inspect a `grep substr(` result for more places where that happens.
Steps to reproduce:
1. Create a custom field group with a name with a multibyte character at the 10th position, e.g. German umlaut `ö`
2. Add any custom field
3. Do a contact search, select some contacts, choose "export" action
4. Choose "Select fields to export"
5. Notice a JavaScript console error: "Uncaught syntax error: Unexpected token ,", inspect the source and notice the missing custom field name for the field in the custom field group
Edit: It should be noted that this causes the export field selection screen not working (no fields can be selected) anymore because of the JavaScript error
Patch: [avoid-truncated-utf-8-strings-when-using-substr.diff](/uploads/5af89995ffab165ccab95d8fed961a8e/avoid-truncated-utf-8-strings-when-using-substr.diff)5.8https://lab.civicrm.org/dev/core/-/issues/407Error with currency localization when recording a payment2019-03-07T09:36:01ZjohansError with currency localization when recording a paymentThis has been posted on stackexchange: https://civicrm.stackexchange.com/questions/26612/problem-with-incoerent-local-currency-in-contribution
I am using civicrm 5.4.1 with drupal 7.
My localization is Italian with decimal delimiter , (...This has been posted on stackexchange: https://civicrm.stackexchange.com/questions/26612/problem-with-incoerent-local-currency-in-contribution
I am using civicrm 5.4.1 with drupal 7.
My localization is Italian with decimal delimiter , (comma) in civicrm/admin/setting/localization?reset=1
When I confirm the record of a payment for a contribution the operation goes on forever and I have to exit the page although when I enter the contribution again the payment is registered.
When I look into the ajax requests with the Chrome DevTools I see that when the "record a new payment" popup is loaded it loads this script from the server (extract):
<span id='totalAmount'>
<select class="eight crm-select2 eight crm-form-select required" name="currency" id="currency">↵
<option value="EUR" selected="selected">EUR (€)</option>
</select> <input size="6" maxlength="14" name="total_amount" type="text" value="1.00" id="total_amount" class="eight six crm-form-text required" />
</span>
<span class="status">Balance Owed: € 1,00</span>
Why is the value in total_amount 1.00 and the value showed in the Balance Owed 1,00?
When I confirm and register the payment the loading of the page goes on forever and when I look into the DevTools I see that this happens as the ajax request answers with an error:
> Sorry, due to an error, we are unable to fulfill your request at the
> moment. You may want to contact your administrator or service provider
> with more details about what action you were performing when this
> occurred. amount is not a valid amount: 1.00
If I change the decimal delimiter to . (point) it works fine.
I have checked this on dmaster.demo.civicrm.org it it has the same problem.5.8https://lab.civicrm.org/dev/core/-/issues/4065.5.2: Import is not happy on PHP-7.2 (Countable)2019-01-08T02:47:10ZDmitry Smirnov5.5.2: Import is not happy on PHP-7.2 (Countable)~~~~
2018/09/25 18:15:04 [error] 33#33: *451 FastCGI sent in stderr: "PHP message: PHP Warning: count(): Parameter must be an array or an object that implements Countable in /usr/share/civicrm/CRM/Contact/Import/Parser.php on line 375
P...~~~~
2018/09/25 18:15:04 [error] 33#33: *451 FastCGI sent in stderr: "PHP message: PHP Warning: count(): Parameter must be an array or an object that implements Countable in /usr/share/civicrm/CRM/Contact/Import/Parser.php on line 375
PHP message: PHP Warning: count(): Parameter must be an array or an object that implements Countable in /usr/share/civicrm/CRM/Contact/Import/Parser.php on line 387
PHP message: PHP Warning: count(): Parameter must be an array or an object that implements Countable in /usr/share/civicrm/CRM/Contact/Import/Parser.php on line 396
PHP message: PHP Warning: count(): Parameter must be an array or an object that implements Countable in /usr/share/civicrm/CRM/Contact/Import/Parser.php on line 408
PHP message: PHP Warning: count(): Parameter must be an array or an object that implements Countable in /usr/share/civicrm/CRM/Contact/Import/Parser.php on line 417
PHP message: PHP Warning: count(): Parameter must be an array or an object that implements Countable in /usr/share/civicrm/CRM/Contact/Import/Parser.php on line 426
PHP message: PHP Warning: count(): Parameter must be an array or an object that implements Countable in /usr/share/civicrm/CRM/Contact/Import/Parser.php on line 435
PHP message: PHP Warning: count(): Parameter must be an array or an object that implements Countable in /usr/share/civicrm/CRM/Contact/Import/Parser.php on line 444
PHP message: PHP Warning: count(): Parameter must be an array or an object that implements Countable in /usr/share/civicrm/CRM/Contact/Import/Parser.php on line 455
PHP message: PHP Warning: count(): Parameter must be an array or an object that implements Countable in /usr/share/civicrm/CRM/Contact/Import/Parser.php on line 464
PHP message: PHP Warning: count(): Parameter must be an array or an object that implements Countable in /usr/share/civicrm/CRM/Contact/Import/Parser.php on line 476" while reading response header from upstream, client: 192.168.0.2, server: civicrm.local, request: "POST /wp-admin/admin.php?page=CiviCRM&q=civicrm/impor
~~~~5.8