Development issueshttps://lab.civicrm.org/groups/dev/-/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/wordpress/-/issues/12A civicrm shortcode for a contribution page on the homepage results in a "Too...2020-06-17T09:07:22ZalicefruminA civicrm shortcode for a contribution page on the homepage results in a "Too many redirects" error instead of the thank you pageIf one puts a CiviCRM short code for a contribution page on the home page of their site like in the screenshot below (no basepage just wpv560.localhost):
![shortcode on the homepage](/uploads/d2dc6d1e36d9040c7656cc951f765358/homepage.pn...If one puts a CiviCRM short code for a contribution page on the home page of their site like in the screenshot below (no basepage just wpv560.localhost):
![shortcode on the homepage](/uploads/d2dc6d1e36d9040c7656cc951f765358/homepage.png)
When creating a contribution thru this form, the user can submit the form, confirm the contribution on the confirmation form and the contribution does go thru and get recorded to civi HOWEVER, instead of being taken to the Thank you page, the user receives a "Too Many Redirects" error like below:
![tooManyRedirect error](/uploads/e32ac1b768679c720ef3cf5cf88f0de8/tooManyRedirectErros.png)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/financial/-/issues/33Proposal - Add in hook alterPostIpn or similar2018-10-27T04:12:13ZseamusleeProposal - Add in hook alterPostIpn or similarAs discussed in Mattermost https://chat.civicrm.org/civicrm/pl/xt83abz75pbwtr5k4em4thhp1r the proposal is to add in a hook like hook_civicrm_alterIPNData or similar that would allow developers to utilise data that comes back in via IPNs ...As discussed in Mattermost https://chat.civicrm.org/civicrm/pl/xt83abz75pbwtr5k4em4thhp1r the proposal is to add in a hook like hook_civicrm_alterIPNData or similar that would allow developers to utilise data that comes back in via IPNs especially in this case PayPal.
The usecase here is that we would use the AlterPaymentProcessorParams hook to include a googleAnalytics token which includes utm codes etc, then use the alterIPNData hook to then extract that when the IPN is processed by CiviCRM sending a GA event so that when the transaction is recorded the UTM codes etc that were associated with the link are also passed up to GA so we can link back to the original hit on the site that the IPN relates to.
I plan to leave this for about a week for people to comment if no objections raised then i will work on writing the hook,
@jamienovick1 @JoeMurray @justinfreeman @mattwire @eileen et all5.8seamusleeseamusleehttps://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.8