CiviCRM Core issueshttps://lab.civicrm.org/dev/core/-/issues2023-11-23T06:52:26Zhttps://lab.civicrm.org/dev/core/-/issues/4019Contribution page with recurring payment and Separate membership payment fail...2023-11-23T06:52:26ZshaneonabikeContribution page with recurring payment and Separate membership payment fails to pass contributionRecurIDOverview
----------------------------------------
_Sorry for the long title_
Contribution pages which are setup with recurring memberships, additional contribution amounts, and separate membership payment result in no ```contributionRec...Overview
----------------------------------------
_Sorry for the long title_
Contribution pages which are setup with recurring memberships, additional contribution amounts, and separate membership payment result in no ```contributionRecurID``` being setup and therefore (in the case of [iATS](https://github.com/iATSPayments/com.iatspayments.civicrm/issues/397)) no recurring payment setup.
In the case of iATS, and probably other payment processors, this ID is actually used to setup the recurring payment. Ironicaly, the is_recur is being passed so this seems clearly a bug.
Reproduction steps
----------------------------------------
1. Create a Membership Contribution page
2. Check-off Contribution Amounts section enabled
2. Add a few additional contribution amounts
3. Don't set recurring for the Contribution Amounts (although another interesting testing scenario)
4. Add a Membership with the option to renew
5. Check off Separate Membership payment_ <== this is the key
6. Use this form (test or live)
7. Choose not to add an additional contribution
8. Choose your membership and check-off auto-renew
9. Process the form
10. No client code is returned, client is set as auto-renew but there is no payment token setup (```contributionRecurID```)
![201234614-daaba710-a38d-4628-a843-951a2152dcf8](/uploads/886562673d42fb45f1e1ebb38903b971/201234614-daaba710-a38d-4628-a843-951a2152dcf8.png)
Current behaviour
----------------------------------------
The following occurs:
+ Membership transaction is made with ```is_recur``` set, but no ```contributionRecurID``` set
+ Transaction completes, but no recurring account is created (at least for iATS) because of missing ID
Ironically, turning off the ```Separate Contribution Amount``` results in the ID to be created, and everything runs smoothly. The problem with this scenario is there are loads of people who might want to do a one-time donation, but not have that repeat each year.
```
nov. 10 19:06:12 [warning] params array (
'qfKey' => 'cut',
'entryURL' => 'cut',
'email-Primary' => 'cut',
'first_name' => 'Administrateur',
'last_name' => 'SymbioTIC',
'street_address-1' => '312312',
'city-1' => '312',
'postal_code-1' => '312',
'country-1' => '1039',
'state_province-1' => '1110',
'phone-Primary-1' => '321312',
'preferred_language' => 'fr_CA',
0 => '',
1 => '',
'group' =>
array (
2 => '',
3 => '',
),
'custom_11' => 'test',
'contact_sub_type_hidden' => 'Membre_ami',
'hidden_processor' => '1',
'credit_card_number' => 'testcc',
'cvv2' => '123',
'credit_card_exp_date' =>
array (
'm' => '5',
'Y' => '2032',
),
'credit_card_type' => 'Visa',
'billing_first_name' => 'Administrateur',
'billing_middle_name' => '',
'billing_last_name' => 'SymbioTIC',
'billing_street_address-5' => '312312',
'billing_city-5' => '312',
'billing_state_province_id-5' => '1110',
'billing_postal_code-5' => '312',
'billing_country_id-5' => '1039',
'payment_processor_id' => '4',
'auto_renew' => true,
'priceSetId' => '9',
'price_16' => '60',
'price_18' => '-1',
'selectProduct' => '',
'MAX_FILE_SIZE' => '83886080',
'ip_address' => 'cut',
'amount' => '30.000000000',
'amount_level' => 'null',
'selectMembership' => '4',
'year' => '2032',
'month' => '5',
'card_type_id' => 1,
'pan_truncation' => '2220',
'currencyID' => 'CAD',
'is_pay_later' => 0,
'is_recur' => 1,
'frequency_interval' => '1',
'frequency_unit' => 'year',
'invoiceID' => 'cut',
'is_quick_config' => 1,
'email-5' => 'cut',
'description' => 'Contribution en ligne: Adhésion Membre Ami',
'accountingCode' => NULL,
'is_test' => 1,
'campaign_id' => NULL,
'middle_name' => '',
'email' => 'cut',
'street_address' => '312312',
'city' => '312',
'state_province' => 'QC',
'postal_code' => '312',
'country' => 'CA',
'cms_contactID' => '2',
'skipLineItem' => 1,
'total_amount' => '30.000000000',
'tax_amount' => 0.0,
'contactID' => '2',
'financialTypeID' => '2',
'trxn_id' => NULL,
'contributionID' => 384,
)
nov. 10 19:06:12 [warning] is_recur: false
```
Expected behaviour
----------------------------------------
+ Choosing ```Separate Contribution Amount``` should not lead to a missing ContributionRecurID
+ ID is passed and a recurring account is created properlyhttps://lab.civicrm.org/dev/core/-/issues/4540Email issues can cause new membership contributions to fail with pending/inco...2023-11-23T06:38:55ZTOCM_MMatthewsEmail issues can cause new membership contributions to fail with pending/incomplete.Overview
----------------------------------------
On a self hosted WordPress (currently 6.3) / CiviCRM (currently 5.64.0) site, when we had an SMTP server outage (not sending email from our virtual server directly, as that causes other s...Overview
----------------------------------------
On a self hosted WordPress (currently 6.3) / CiviCRM (currently 5.64.0) site, when we had an SMTP server outage (not sending email from our virtual server directly, as that causes other spam-related problems), any attempt to sign up as a member to our site would end in a failure state (contribution pending/incomplete), after processing payment but failing to send the receipt email. Could be related to the request timing out from php-fpm, but whatever that email timeout was, it was longer than 120s when I gave up trying to adjust php-fpm's timeout value. Settings within CiviCRM (outbound mail) have always just used mail(). But we use the WP Mail SMTP plugin for all WordPress related email to go through the trusted mailers directly. And when that was pointing to mail servers that timed out our connections, we'd see the pending/incomplete failures. Flipping that to default/none so it would use the host mailer as well, things started to work again (with the caveat of some emails not getting through because our server's IP will never be fully trusted by all the major mailers, given that it's within a virtual IP range that apparently triggered some alarms before).
https://civicrm.stackexchange.com/questions/45428/email-timeouts-breaking-contributions?noredirect=1#comment53603_45428
Reproduction steps
----------------------------------------
Set your WordPress mailer up to a host that times out the SMTP connection with WP Mail SMTP (we use the free version, non-profit, can't justify Pro upgrade). Key point probably being SMTP connection timeout being longer than php-fpm timeout, as the process terminates ungracefully.
Set up membership contribution page that sends credit card processing receipt. Maybe it was the password reset link from WordPress, but, can't see how?
Current behaviour
----------------------------------------
Users would not get any receipt or password reset email, transaction -- while processed via our provider (Stripe) would show as pending/incomplete transaction.
Expected behaviour
----------------------------------------
The transaction should continue. Maybe emails will get delayed/queued/lost depending on the mailer situation, but this should not break recording of a successful payment, so we'd just have to resend emails instead of go in and mark the transaction as complete after verifying payment has been received and then resend emails.
Environment information
----------------------------------------
* __Browser:__ Every. Testing confirmed with Safari 16.5.2 / Chrome 116.0.x on macOS Ventura 13.4.1(c).
* __CiviCRM:__ 5.64.0 at the time of SMTP failure
* __PHP:__ 8.0.30
* __CMS:__ WordPress 6.3
* __Database:__ MySQL 8.0.32
* __Web Server:__ Apache 2.4.57
Comments
----------------------------------------
_Anything else you would like the reviewer to note._https://lab.civicrm.org/dev/core/-/issues/4421Scheduled jobs stopped working after an update last week - error in MailingEv...2023-11-23T06:34:09ZTobias KrauseScheduled jobs stopped working after an update last week - error in MailingEventUnsubscribe.phpI realized this morning that the CiviCRM cron job for the scheduled jobs stopped working after we updated last week from CiviCRM 5.61.2 to 5.61.4. Today I updated to the most current version 5.63.1 but the error still exists.
The proble...I realized this morning that the CiviCRM cron job for the scheduled jobs stopped working after we updated last week from CiviCRM 5.61.2 to 5.61.4. Today I updated to the most current version 5.63.1 but the error still exists.
The problem became obvious as the message "Cron job not running" appeared when I logged in this morning (I did not so for the whole last week). When I checked the list of scheduled jobs I found out that the "Bounces fetcher" job run successfully but all the other jobs did not. So I run our cron job task
`/var/www/civi_live/vendor/civicrm/cv/bin/cv api job.execute --user=admin --cwd=/var/www/civi_live/httpdocs`
manually in CLI and got the following error:
```
In MailingEventUnsubscribe.php line 47:
count(): Argument #1 ($value) must be of type Countable|array, null given
```
The following file is the one: vendor/civicrm/civicrm-core/api/v3/MailingEventUnsubscribe.php
Here it is the following code part in the function civicrm_api3_mailing_event_unsubscribe_create:
```
$groups = CRM_Mailing_Event_BAO_MailingEventUnsubscribe::unsub_from_mailing($job, $queue, $hash);
if (count($groups)) {
CRM_Mailing_Event_BAO_MailingEventUnsubscribe::send_unsub_response($queue, $groups, FALSE, $job);
return civicrm_api3_create_success($params);
}
```
CRM_Mailing_Event_BAO_MailingEventUnsubscribe::unsub_from_mailing can return an array or NULL. I am not sure why this error appeared after the last update as neither CRM_Mailing_Event_BAO_MailingEventUnsubscribe::unsub_from_mailing nor civicrm_api3_mailing_event_unsubscribe_create() has changed but it may be related to some other changes somewhere.
When I change this code part to the following the scheduled jobs are finished:
```
$groups = CRM_Mailing_Event_BAO_MailingEventUnsubscribe::unsub_from_mailing($job, $queue, $hash);
if ($groups && count($groups)) {
CRM_Mailing_Event_BAO_MailingEventUnsubscribe::send_unsub_response($queue, $groups, FALSE, $job);
return civicrm_api3_create_success($params);
}
```https://lab.civicrm.org/dev/core/-/issues/4790Can't set time format to 24 hr anymore2023-11-22T18:27:13ZDaveDCan't set time format to 24 hr anymoree.g. for date preferences set activityDate to 24 hr time. Then on a contribution the time field should be 24 hrs.
I have a feeling it's related to the same problem as https://lab.civicrm.org/dev/financial/-/issues/221 and the fix there ...e.g. for date preferences set activityDate to 24 hr time. Then on a contribution the time field should be 24 hrs.
I have a feeling it's related to the same problem as https://lab.civicrm.org/dev/financial/-/issues/221 and the fix there isn't entirely correct because something else changed about time_format. I'm not sure it's supposed to be a boolean but haven't confirmed.https://lab.civicrm.org/dev/core/-/issues/3867Subscription do-not-reply email causing issues with some mail servers connect...2023-11-20T23:59:49Znikola.mladenovicSubscription do-not-reply email causing issues with some mail servers connecting via SMTPOverview
----------------------------------------
We used integration via Contact Form 7 integration to connect Contact Form 7 in order to send data directly to CiviCRM. This works when server is connected to mail() but not via SMTP for ...Overview
----------------------------------------
We used integration via Contact Form 7 integration to connect Contact Form 7 in order to send data directly to CiviCRM. This works when server is connected to mail() but not via SMTP for some servers.
This issue is only present when you use Mailing Event: Subscribe to mailing list as Action in form processor.
The client uses cPanel, which by default has setup to decline all emails that do not exist (ex do-not-reply@domain.com). They do not use catchall. The issue itself is CiviCRM related, not FormProcessor.
When its set to SMTP, it tries to send email stimulating address do-not-reply@domain.com
Since it doesn't exist and SMTP is directly connected to only one email that wont work, as it tries to use that address for Subscribing process. When you send via mail() function you get email from proper email, but since server stimulates it, it doesn't cause a bug in that state.
Reproduction steps
----------------------------------------
1. Connect via SMTP to some cPanel SMTP or similar host that doesn't have catchall/VERP/do-not-reply@domain.com address present
2. Click on Administration -> Automation -> Form processor
2. Create Form processor that only has email for value
3. Add XCM contact matcher to match contact
4. Add type Mailing Event: Subscribe to mailing list
5. Save and Close -> Try out out
Current behaviour
----------------------------------------
When you try to fill out Contact Form 7 and it has SMTP connected, data is submitted but submission itself is not sent to the user.
When you use Try Out option for Form Processor you get error from the system: Unable to send email. Please report this message to the site administrator
In logs you can find this:
`[error] Mailing error: Failed to add recipient: user@website.org [SMTP: Invalid response code received from SMTP server while sending email. This is often caused by a misconfiguration in Outbound Email settings. Please verify the settings at Administer CiviCRM >> Global Settings >> Outbound Email (SMTP). (code: 550, response: Verification failed for...`
SMTP and bounce processing is functioning perfectly for newsletter.
Expected behaviour
----------------------------------------
It should by default use SMTP address not ask for do-not-reply@domain.com address as it sends even via SMTP with our hotfix. This causes issues for some SMTP connections, from some hosts. In this case from cPanel which does not have catchall setup or do-not-reply@domain.com address.
Current hotfix for client's needs
----------------------------------------
We made an edit in file civicrm/CRM/Mailing/Event/BAO/Subscribe.php on line 208 on master ('returnPath' => CRM_Core_BAO_Domain::getNoReplyEmailAddress()) to force to use same address as SMTP one and that works when subscription is received.
` 'returnPath' => 'smtp@domain.com',//CRM_Core_BAO_Domain::getNoReplyEmailAddress(), `
Environment information
----------------------------------------
* __Browser:__ _Firefox 105.0/Chrome 105.0.5195.127_
* __CiviCRM:__ _5.47.4_ <!-- If this problem relates to an upgrade, then specify both old and new versions -->
* __PHP:__ _Php-7.4_
* __CMS:__ _Drupal-7.91_
* __Database:__ _mysql-8.0.30-0ubuntu0.20.04.2_
* __Web Server:__ _apache2-2.4.41_
Comments
----------------------------------------
Chat link of discussion:
https://chat.civicrm.org/civicrm/pl/1sqat1uwo3befca91akhmdzsre
Creating do-not-reply@domain.com address is also another fix, but its not noted anywhere but it should exist, either fixing this for global use or adding in CiviCRM to report that do-not-reply@domain.com doesn't exists should suffice.https://lab.civicrm.org/dev/core/-/issues/4782Mailing system doesn't work with DigitalOcean managed databases2023-11-20T12:13:45ZrobertgarrigosMailing system doesn't work with DigitalOcean managed databasesOverview
----------------------------------------
When creating a new mailing adding a group in the recipients field triggers an error:
Possibly unhandled rejection: {"error_code":-1,"sql":"CREATE TEMPORARY TABLE civicrm_tmp_e_exrecipie...Overview
----------------------------------------
When creating a new mailing adding a group in the recipients field triggers an error:
Possibly unhandled rejection: {"error_code":-1,"sql":"CREATE TEMPORARY TABLE civicrm_tmp_e_exrecipient_dc8f2500b15714f5703ad66bc5a8bb37 (contact_id int primary key) ENGINE=MEMORY COLLATE utf8mb4_unicode_ci","debug_info":"CREATE TEMPORARY TABLE civicrm_tmp_e_exrecipient_dc8f2500b15714f5703ad66bc5a8bb37 (contact_id int primary key) ENGINE=MEMORY COLLATE utf8mb4_unicode_ci [nativecode=3161 ** Storage engine MEMORY is disabled (Table creation is disallowed).]","entity":"Mailing","action":"create","is_error":1,"error_message":"DB Error: unknown error","debug_information":"CREATE TEMPORARY TABLE civicrm_tmp_e_exrecipient_dc8f2500b15714f5703ad66bc5a8bb37 (contact_id int primary key) ENGINE=MEMORY COLLATE utf8mb4_unicode_ci”}
https://civicrm.stackexchange.com/questions/45905/storage-engine-memory-is-disabled-with-digitalocean-managed-database
Reproduction steps
----------------------------------------
1. Create a new mailing
1. add a group to the recipients field
1. Got error on console as well as "estimating" label get locked
1. You need to have the civicrm database hosted in a DigitalOcean manage database cluster
Expected behaviour
----------------------------------------
Groups should get added and count of contacts should be shown next to the recipients field
Comments
----------------------------------------
Fixed by changing line 67 of CRM/Utils/SQL/TempTable.php from `const MEMORY = 'ENGINE=MEMORY';` to `const MEMORY = 'ENGINE=InnoDB';`
I'm aware that you could think that this is a DigitalOcean Problem (they have unsetted the ability to set internal_tmp_mem_storage_engine to MEMORY), but I wonder if the Memory Engine is necessary at all.https://lab.civicrm.org/dev/core/-/issues/3008Load create cms user for checksum contact without uf_id2023-11-19T20:45:34ZjitendraLoad create cms user for checksum contact without uf_idTo replicate -
- Create a profile with Account creation required = 1.
- Add this profile to contribution or event page.
- Create a contact A without a CMS user record.
- Load the contribution page with checksum of contact A.
- The profi...To replicate -
- Create a profile with Account creation required = 1.
- Add this profile to contribution or event page.
- Create a contact A without a CMS user record.
- Load the contribution page with checksum of contact A.
- The profile wont load the username field even when the checksum contact does not have a cms user attached to it.
![image](/uploads/c6af3e369abe278101f21e831471ea98/image.png)https://lab.civicrm.org/dev/core/-/issues/4743Refreshing event registration thank you page resulting error2023-11-17T15:44:51Zvakeesan26Refreshing event registration thank you page resulting errorRefreshing Event registration thank you page resulting error as below
**Could not find valid value for id**
![image](/uploads/15aa0a835556a286a3ab8172cb13c63d/image.png)Refreshing Event registration thank you page resulting error as below
**Could not find valid value for id**
![image](/uploads/15aa0a835556a286a3ab8172cb13c63d/image.png)https://lab.civicrm.org/dev/core/-/issues/4763Issues - contribution page when membership amount + contribution in play2023-11-17T01:29:53ZeileenIssues - contribution page when membership amount + contribution in playI'm trying to fix up the online membership receipt template to be consistent with the others but hitting multiple issues/ unexpected variations so documenting.
Scenarios
| Scenario | Separate Membership Payment|Contribution Amount|Mem...I'm trying to fix up the online membership receipt template to be consistent with the others but hitting multiple issues/ unexpected variations so documenting.
Scenarios
| Scenario | Separate Membership Payment|Contribution Amount|Membership|Contribution Amount|Email details|issues |
| --------- | ------------------------- |------------------- |------- |------------------- |------- |------- |
| 1 | yes |10 |$100 General|10, 100 |2, online contribution ($10) + online membership ($100), membership info & membership fee sections|tax not applied https://lab.civicrm.org/dev/financial/-/issues/154 |
| 2 | yes |10 | free membership|2, $10 + pending $0 |$10 contribution receipt only |creates pending $0 (should be completed), no membership receipt, https://lab.civicrm.org/dev/core/-/issues/3325|
| 3 | yes |10 | no thanks for membership|$10|contribution receipt only ||
| 4 | yes |0 option | $100 General|0, 100 (both completed)|online contribution,membership |- the online contribution receipt has no amount - confusing but not necessarily a bug |
| 5 | yes |no thanks | $100 General|100 |membership receipt only | |
| 6 | yes |other amount ($5) | $100 General|$5 only|? - retest this |? - retest this|
| 7 | no |10 |$100 General|------------------- |------- |issues |
| 8 | no |10 | free membership|------------------- |------- |issues |
| 9 | no |10 | no thanks for membership|------------------- |------- |issues |
| 10 | no |0 option | $100 General|------------------- |------- |issues |
| 11 | no |no thanks | $100 General|------------------- |------- |issues |
| 12 | no |other amount ($5) | $100 General|------------------- |------- |issues |
Online membership receipt sections
- Membership Information
![image](/uploads/dc86d33bea219f8b05f5f9c388badadd/image.png)
- Memberhsip fee section
![image](/uploads/6bc733f73e9d35191f0f98fc0ce181d3/image.png)https://lab.civicrm.org/dev/core/-/issues/4633Fix extensions to work with Smarty3 - backticks2023-11-17T00:41:05ZeileenFix extensions to work with Smarty3 - backticksIn order to replace Smarty 2 with Smarty 3 we need to make minor changes to extensions so that they are compatible
UPDATE - the backticks seem to be less hurty than I thought so I misunderstood @larssg anaysis of when they DO cause issu...In order to replace Smarty 2 with Smarty 3 we need to make minor changes to extensions so that they are compatible
UPDATE - the backticks seem to be less hurty than I thought so I misunderstood @larssg anaysis of when they DO cause issues
Ref https://github.com/kanshin/CakeSmarty/blob/master/vendors/Smarty-3.0.9/SMARTY2_BC_NOTES
- [ ] Backticks should no longer be used in strings - unfortunately the advertised way of doing crmUrl included backticks - we should add to `civix upgrade` to include doing a regex to fix these
href="{crmURL p='civicrm/participant/add' q="reset=1&action=add&context=standalone&eid=`$event.id`"}"
this regex seems to work to find them
\".*`\$.*`\"
![image](/uploads/51b4097c2491e9d07b432605c7b3ed34/image.png)
![image](/uploads/8241c284e6cff66e766b832b5a3beaf6/image.png)
- [ ] Find extensions with older civix & run regex on them - for those with backticks this will fix. For the others it will allow Smarty3 to be run in the transition period
- [ ] Patch / hack Smarty2 to give deprecation notices for the above
- [ ] When we are closer to transitioning consider temporarily hacking string replace into smarty 3 fetch function
Extension list
- [ ] CiviRules
- [ ] UK Gift Aid https://lab.civicrm.org/extensions/ukgiftaid/-/merge_requests/41
- [ ] CiviCalender https://github.com/agiliway/com.agiliway.civicalendar/pull/34
- [ ] Elections https://lab.civicrm.org/extensions/elections/-/merge_requests/4https://lab.civicrm.org/dev/core/-/issues/3040UI allows creation of unresolvable failure for status check "Relationship Typ...2023-11-16T16:09:55ZAllenShawUI allows creation of unresolvable failure for status check "Relationship Type Internal Name Duplicates"Admittedly, "unresolvable" is a bit of an overstatement, but you can create this situation in the UI, and then the UI provides no way to resolve it (it is resolvable via the API).
**To reproduce:**
1. Visit https://dmaster.demo.civicrm....Admittedly, "unresolvable" is a bit of an overstatement, but you can create this situation in the UI, and then the UI provides no way to resolve it (it is resolvable via the API).
**To reproduce:**
1. Visit https://dmaster.demo.civicrm.org/civicrm/admin/reltype?reset=1
1. Create a new relationship type with Label A "Foobar" and Label B "Employee Of"
1. Visit https://dmaster.demo.civicrm.org/civicrm/a/#/status and observe error: "Relationship Type Internal Name Duplicates;
Relationship type Employee of has the same internal machine name as another type.": ![error](/uploads/6d2eb70ff9aac5ce16ca948faee6d077/error.png)
1. Visit https://dmaster.demo.civicrm.org/civicrm/admin/reltype?reset=1 and edit the offending relationship (created in step 1); you can edit the labels but not the name. Best you can do is change "Employee of" to something else, like "Foobar of".
1. Visit https://dmaster.demo.civicrm.org/civicrm/a/#/status and observe that the error persists, exactly the same as in Step 3.
There's no way to change the name in the UI; you must use the API to change it.
**Proposed solution:**
* Upon creating a relationship type (other than reserved types created upon installation), use centralized logic to derive unique name from label; i.e., opt-in to the new behavior provided by https://github.com/civicrm/civicrm-core/pull/22508.
Thoughts?https://lab.civicrm.org/dev/core/-/issues/4314Many undefined array and deprecated warnings when adding a new activity for a...2023-11-15T20:11:28ZTobias KrauseMany undefined array and deprecated warnings when adding a new activity for a contact- Open a contact and go to the "Activities" tab
- Click on "+ New Activity"
In many case we see a lot of warnings appearing in watchdog - in total 21 but it seems that the following 3 messages are repeated 7 times:
```
Warning: Undefi...- Open a contact and go to the "Activities" tab
- Click on "+ New Activity"
In many case we see a lot of warnings appearing in watchdog - in total 21 but it seems that the following 3 messages are repeated 7 times:
```
Warning: Undefined array key "params" in include() (Zeile 5 in C:\wamp64\www\civicrm\httpdocs\sites\default\files\private\civicrm\templates_c\en_US\%%DF\DF0\DF0B0562%%RecurringEntity.hlp.php)
Warning: Trying to access array offset on value of type null in include() (Zeile 5 in C:\wamp64\www\civicrm\httpdocs\sites\default\files\private\civicrm\templates_c\en_US\%%DF\DF0\DF0B0562%%RecurringEntity.hlp.php)
Deprecated function: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in smarty_modifier_lower() (Zeile 23 in C:\wamp64\www\civicrm\vendor\civicrm\civicrm-packages\Smarty\plugins\modifier.lower.php)
```
For the last warning: I mentioned it already in https://lab.civicrm.org/dev/core/-/issues/4312 - maybe this warning might be an issue on it's ownhttps://lab.civicrm.org/dev/core/-/issues/4777SearchKit 'LIKE' failing2023-11-14T16:39:12Zaydunsaidan.saunders@squiffle.ukSearchKit 'LIKE' failingOverview
----------------------------------------
Some uses of 'LIKE' don't work - eg dropdown labels.
Reproduction steps
----------------------------------------
1. Create a SK search for Contacts
1. Add `WHERE` `Constituent Informatio...Overview
----------------------------------------
Some uses of 'LIKE' don't work - eg dropdown labels.
Reproduction steps
----------------------------------------
1. Create a SK search for Contacts
1. Add `WHERE` `Constituent Information: Marital Status` `Is Like` `%partner%`
1. Search
2. Expand the Query Info section
See this [dmaster link](https://dmaster.demo.civicrm.org/civicrm/admin/search#/create/Contact?params=%7B%22version%22:4,%22select%22:%5B%22id%22,%22sort_name%22,%22contact_type:label%22,%22contact_sub_type:label%22%5D,%22orderBy%22:%7B%7D,%22where%22:%5B%5B%22constituent_information.Marital_Status:name%22,%22LIKE%22,%22%25partner%25%22%5D%5D,%22groupBy%22:%5B%5D,%22join%22:%5B%5D,%22having%22:%5B%5D%7D)
Current behaviour
----------------------------------------
In API, the `where` clause is as expected:
```
"where": [
[
"constituent_information.Marital_Status:name",
"LIKE",
"%partner%"
]
],
```
But the SQL is wrong:
```
WHERE (`constituent_information_1`.`marital_status_2` LIKE "")
```
Expected behaviour
----------------------------------------
The user's intent was to find contacts where the dropdown label matches the specified pattern.
1. The intent is to search on the label, but only the name is available
2. The pattern `%partner%` does not make it into the SQL at all.
Environment information
----------------------------------------
* __CiviCRM:__ _Master_ <!-- If this problem relates to an upgrade, then specify both old and new versions -->https://lab.civicrm.org/dev/core/-/issues/4776Todo: Look at whether these test fails mean anything2023-11-14T16:38:47ZDaveDTodo: Look at whether these test fails mean anythingSomewhere in their flow, they call CRM_Core_Form::getAuthenticatedCheckSumContactID and it calls CRM_Core_Form::getRequestedContactID which returns null. Should it be null or the correct contact id?
This maybe qualifies as a regression ...Somewhere in their flow, they call CRM_Core_Form::getAuthenticatedCheckSumContactID and it calls CRM_Core_Form::getRequestedContactID which returns null. Should it be null or the correct contact id?
This maybe qualifies as a regression but at the moment I don't have a specific bug. It came up in the context of https://github.com/civicrm/civicrm-core/pull/28128 where they all fail if validateAuthenticatedCheckSumContactID() is expecting not null.
api_v3_ContributionPageTest.testValidate
api_v3_ContributionPageTest.testValidatePost
api_v3_ContributionPageTest.testValidateOutputOnMissingRecurFields
CRM_Contribute_Form_Contribution_ConfirmTest.testPayNowPayment
CRM_Contribute_Form_Contribution_ConfirmTest.testSeparatePaymentConfirm
CRM_Contribute_Form_Contribution_MainTest.testSetRecurFunction
CRM_Contribute_Form_Contribution_MainTest.testSetRecurFunctionOptionalYes
CRM_Contribute_Form_Contribution_MainTest.testSetRecurFunctionOptionalNo
CRM_Contribute_Form_Contribution_MainTest.testSetRecurFunctionNotAvailable
CRM_Contribute_Form_Contribution_MainTest.testExpiredPriceSet
CRM_Contribute_Form_ContributionTest.testContributionBasePreProcess
CRM_Core_FormTest.testGetAuthenticatedUser
CRM_Event_Form_Registration_ConfirmTest.testSubmit
CRM_Event_Form_Registration_ConfirmTest.testWaitlistRegistrationContactIDParam
CRM_Event_Form_Registration_ConfirmTest.testTaxMultipleParticipant
CRM_Event_Form_Registration_ConfirmTest.testMailMultipleParticipant
CRM_Event_Form_Registration_ConfirmTest.testOnlineRegNoPrice
CRM_Event_Form_Registration_ConfirmTest.testSubmitNonPrimaryEmail
CRM_Event_Form_Registration_ConfirmTest.testRegistrationWithoutCiviContributeEnabled
CRM_Event_Form_Registration_ConfirmTest.testPaidSubmit with data set #0
CRM_Event_Form_Registration_ConfirmTest.testPaidSubmit with data set #1
CRM_Event_Form_ParticipantTest.testTransferParticipantRegistration
CRM_Event_Form_SelfSvcTransferTest.testCancel
CRM_Event_Form_Registration_ConfirmTest.testNoteSubmissionhttps://lab.civicrm.org/dev/core/-/issues/4765Add label field to OAuthClient entity2023-11-14T16:35:42ZjensschuppeAdd label field to OAuthClient entity## Overview
We came across a use-case for multiple _OAuthClient_ entites with the same _Client ID_, which makes differentiating them difficult in the UI. We'd like to propose adding a field for an administrative label to the _OAuthClien...## Overview
We came across a use-case for multiple _OAuthClient_ entites with the same _Client ID_, which makes differentiating them difficult in the UI. We'd like to propose adding a field for an administrative label to the _OAuthClient_ entity and defining it as the `label_field`. It might also be a good idea to make labels required.
## Proposed behaviour
We're currently building an API extension for synchronizing data from another CRM-like system that requires authorization via OAuth and differentiates multiple instances/sources by using different access tokens for the same client ID/secret.
Our sync API uses configurable profiles which have the OAuth client as a configuration option, so there's a field for selecting an OAuth client in the UI. The only attribute for differentiating OAuth clients in that field is their internal (CiviCRM) ID, as Client ID and secret are the same and the access token should not be exposed and might change. This is not convenient for admins, as they will have to remember which (internal) OAuth client ID corresponds to which instance, which is likely to cause misconfigurations and errors.
I guess this will need:
* the XML schema of the `OAuthClient` entity be extended with a `label` field
* `civix generate:entity-boilerplate`
* Upgrade script for applying schema changes - thanks @eileen!
* anything else?
Happy to hear your thoughts!https://lab.civicrm.org/dev/core/-/issues/4762SearchUI: Manage Extensions with SK/FB2023-11-14T16:34:11Zaydunsaidan.saunders@squiffle.ukSearchUI: Manage Extensions with SK/FBIssues relating to replacing the 'Manage Extensions' page with SK/FB
Enable SearchUI extension then go to Administer > Experimental > Extensions
## Required to match current functionality:
- [ ] Way to determine whether extension ne...Issues relating to replacing the 'Manage Extensions' page with SK/FB
Enable SearchUI extension then go to Administer > Experimental > Extensions
## Required to match current functionality:
- [ ] Way to determine whether extension needs updating
- [ ] API enhancement (?) to get info.xml data
- [ ] Expandable sections - or show in pop-up?
- [ ] Metadata update to add 'Install', 'Upgrade' and 'Disable' actions
- [ ] Functionality to show not-installed extensions (ie 'Add New' tab)
## Improvements:
- [ ] Separate core/required from community extensions (could be filters or tabs)
- [ ] Better handling of extensions with local githttps://lab.civicrm.org/dev/core/-/issues/4287PHP 8 - Undefined variable warnings from Smarty appear in email notifications2023-11-14T01:40:49ZjasonhildebrandPHP 8 - Undefined variable warnings from Smarty appear in email notificationsOverview
----------------------------------------
We recently upgraded Civi to 5.60 and PHP 8 (was previously PHP 7.x). Our site uses Drupal 7.
Since the upgrade, we are seeing errors such as ```Undefined array key "phone_type"``` appe...Overview
----------------------------------------
We recently upgraded Civi to 5.60 and PHP 8 (was previously PHP 7.x). Our site uses Drupal 7.
Since the upgrade, we are seeing errors such as ```Undefined array key "phone_type"``` appearing in our email notifications to event participants.
![screenshot](/uploads/4cee73442124f9c2a3b1158e8925c1e7/screenshot.png)
We have taken action to suppress errors and warnings in Drupal, but this does not appear to help when smarty is used to render email notifications.
Expected behaviour
----------------------------------------
I would expect these warnings not to appear, or to be suppressible with setting, so that they can be turned off in production.
Workaround
-----------
As a workaround, I added the 3 lines marked below to civicrm/CRM/Core/TokenSmarty.php in order to suppress the warnings before rendering, then restore the error_reporting to the original setting after rendering.
Perhaps this kind of approach could be added to Civi with a configuration setting to turn these messages on/off.
```
// Evaluate/render templates
try {
if ($useSmarty) {
$orig_reporting = error_reporting(); // ADDED
error_reporting(0); // ADDED
CRM_Core_Smarty::singleton()->pushScope($smartyAssigns);
}
$tokenProcessor->evaluate();
foreach ($messages as $messageId => $ign) {
foreach ($tokenProcessor->getRows() as $row) {
$result[$messageId] = $row->render($messageId);
}
}
}
finally {
if ($useSmarty) {
CRM_Core_Smarty::singleton()->popScope();
error_reporting($orig_reporting); // ADDED
}
}
```https://lab.civicrm.org/dev/core/-/issues/76Multiple roles per participant causes incorrect participant counts (was: Civi...2023-11-12T15:46:22ZUpperholmeMultiple roles per participant causes incorrect participant counts (was: CiviEvent no longer respects Max Participants)Since upgrading to 5.0 I find that events continue to allow front end registrations despite the number of counted participants exceeding the max number set on the event configuration. The on-screen alert is not displayed, and registratio...Since upgrading to 5.0 I find that events continue to allow front end registrations despite the number of counted participants exceeding the max number set on the event configuration. The on-screen alert is not displayed, and registration remains open.
as a temporary workaround I'm having to closely monitor registrations and manually turn off online registration and edit the event information to provide an 'event full' message when capacity is reached.https://lab.civicrm.org/dev/core/-/issues/3762SearchKit roadmap2023-11-10T12:30:29ZwmortadaSearchKit roadmapThis roadmap is based on a [Google Doc](https://docs.google.com/document/d/1PfgV48_Fc6rup5PexPpxOvnd5nV9NOjN8dieglxHAyM/edit#) created as part of the regular Form Builder / SearchKit meetings.
It could do with some tidying up and more d...This roadmap is based on a [Google Doc](https://docs.google.com/document/d/1PfgV48_Fc6rup5PexPpxOvnd5nV9NOjN8dieglxHAyM/edit#) created as part of the regular Form Builder / SearchKit meetings.
It could do with some tidying up and more details on some items.
See also dev/core#3761
## Improvements
- [ ] [Action permissions](https://docs.google.com/document/d/1SM_kdMVmxgV0jarYphXHuysERRdEt-w1bhKzZTwVaKA/edit#heading=h.g2m0sr8ujije)
- [ ] Data visualisations - develop support for advanced visualisations for SearchKit data display
- [ ] Emailing results of SearchKits
- [ ] Embed on remote site - check inlay (https://lab.civicrm.org/extensions/inlay)
- [ ] [Recreate core screens as Search Displays](https://lab.civicrm.org/dev/core/-/issues/3912)https://lab.civicrm.org/dev/core/-/issues/3761Form Builder roadmap2023-11-10T12:30:28ZwmortadaForm Builder roadmapThis roadmap is based on a [Google Doc](https://docs.google.com/document/d/1PfgV48_Fc6rup5PexPpxOvnd5nV9NOjN8dieglxHAyM/edit#) created as part of the regular Form Builder / SearchKit meetings.
It could do with some tidying up and more d...This roadmap is based on a [Google Doc](https://docs.google.com/document/d/1PfgV48_Fc6rup5PexPpxOvnd5nV9NOjN8dieglxHAyM/edit#) created as part of the regular Form Builder / SearchKit meetings.
It could do with some tidying up and more details on some items.
See also dev/core#3912 for tracking conversion of Admin screens and dev/core#3762 for SearchKit items
## Support more entities
- [x] CiviCase
- [x] Participants https://github.com/civicrm/civicrm-core/pull/24420
- [ ] Surveys/Petitions
- [x] Grants
- [ ] Contributions
- [ ] Group opt ins
- [ ] Generalized entity support (generic create/edit forms for any entity type, including custom civix-generated entities)
## Support more workflows
- [x] Ability to add tokens to form submission redirect URL https://github.com/civicrm/civicrm-core/pull/24016
- [x] Add to navigation menu https://github.com/civicrm/civicrm-core/pull/24013
- [x] CAPTCHA support https://lab.civicrm.org/dev/core/-/issues/3173
- [ ] Multi-step forms
- [ ] Conditional fields https://github.com/civicrm/civicrm-core/pull/24699
- [ ] Form-only fields that can be used in conditionals. Eg. _"for example I want to ask 'Do you want to add another child?' and have yes or no, the yes then opens another individual contact to be created on the form, but i don't want to have this question as a custom field as it will never be looked at."_
- [ ] Display values after submission
- [ ] Support remote display and submission (https://civicrm.org/make-it-happen/formbuilder-remote-forms)
## Other improvements
- [x] Improve validation
- [.] Client side validation https://github.com/civicrm/civicrm-core/pull/23604
- This is only partially implemented and does not work for select2 and multiple checkboxes (at least) - see https://github.com/civicrm/civicrm-core/pull/25535 and https://github.com/civicrm/civicrm-core/pull/25536 for details.
- [x] Server side validation https://lab.civicrm.org/dev/core/-/issues/3760
- [ ] Payment processors
- [ ] Price sets
- [ ] “Pagebuilder”
- [x] Support entity ref with pre-population
- [ ] Embed on remote site - check inlay (https://lab.civicrm.org/extensions/inlay)
- [x] Display-only fields (https://lab.civicrm.org/dev/core/-/issues/3779)
- [x] ‘Add New’ button ([Added to SearchKit](https://github.com/civicrm/civicrm-core/pull/24512/commits/8d0bafa435d7b2eed771cd2dd2c180e566063592))
- [ ] Add a config link shown to admins
- [ ] More/better APIs/examples for hooking into forms (from extensions)
- [ ] post-submit tokens
- [ ] contact widget in drupal webform
- limit an entity-ref
- pull up data for contact from entity-ref (get their name/address)
- [x] entity-ref: is it api4 or api3? https://github.com/civicrm/civicrm-core/pull/24832
- [ ] More in-place “Edit” links (for admins)
- [ ] WordPress Gutenberg block
- see [Afform - support embedding forms via WP](https://github.com/civicrm/civicrm-core/pull/19687/files#diff-5af5dcb53864f5076881abda3a70b38143ee4b7be5b1c1fce453bf4721db74f2R533-R549) for inspiration
- [ ] Tag support
- [x] Deduplication https://github.com/civicrm/civicrm-core/pull/24552
- [ ] Support url-params and other config options for Values in Submmission forms https://lab.civicrm.org/dev/core/-/issues/3910
- [ ] Hidden fields https://github.com/civicrm/civicrm-core/pull/24161
- [x] Copy a search display in the UI
- [x] Add a 'Copy' button for repeating elements - like the existing 'Add' button but copying the values entered in the source. Was "Bulk create defaults" dev/core#3986 https://github.com/civicrm/civicrm-core/pull/26071
- [ ] Date filtering options dev/core#3985
- [ ] Add tab display see https://github.com/civicrm/civicrm-core/pull/24981
- [ ] Add way to link to local URL's in helptext see https://github.com/civicrm/civicrm-core/pull/24981
- [ ] Decide how to handle popup help text currently in `.hlp` files - new element on form? eg see https://github.com/civicrm/civicrm-core/pull/24981
- [ ] Add way to handle popup warnings before action see https://github.com/civicrm/civicrm-core/pull/24981
- [ ] Allow 'Add New' button to open full-page, not just pop-up - eg https://github.com/civicrm/civicrm-core/pull/24937
- [ ] Add general purpose button? eg 'Manage Personal Campaign Pages' button - see https://github.com/civicrm/civicrm-core/pull/24937
- [ ] Improve SK UX - see dev/user-interface#49
- [ ] Allow generic / "preset" formatting instead of hardcoding colours etc. per form. Eg specify preset "Generic search form" to make it look like every other search form.
- [ ] Conditional field formatting based on other field values.
- [ ] Create a way to add someone to a group from a Submission form
- [ ] In SK, be able to use custom fields in joins. (Eg with Related Contacts, want to include if custom field matches criteria. NB you can use custom fields in Where clauses but that turns 'with (optional)' into 'with (required)' dev/core#3972
- [ ] Smart totals for monetary amounts: a listing of contributions £1, £2, $3 should show a total of £3, $3 not '6'. Many contribution reports need this. More generically, allow aggregates over more multiple fields but summing contribution amounts is possibly the main use case. dev/core#4207
## Reimplement in a framework other than AngularJS
AngularJS was released in 2010 with Google discontinuing support at the end of 2021. It is the primary javascript technology used in SearchKit and especially FormBuilder.
- [x] Research options including health and market share momentum of project/community, impact on developer experience, etc. Options might include React, Angular, etc.
- [X] discuss with community at Manchester Sprint
- [X] Develop scope and estimates for migrating to React as part of a large grant proposal
- [ ] develop prioritized epics for migration starting with some proof of concept LExIM extensions
- [ ] through MIHs and developer commitments plan how to resource a phased migration to the selected new technology option