CiviCRM Core issueshttps://lab.civicrm.org/dev/core/-/issues2024-02-14T09:55:26Zhttps://lab.civicrm.org/dev/core/-/issues/4984Display issue on membership view for relationships2024-02-14T09:55:26ZyashodhaDisplay issue on membership view for relationships## Steps to replicate :
* Create a membership type configured with a relationship in both directions.
![Screenshot 2024-02-08 204424.png](/uploads/d4e47bd30b2673291f1e8c5bfe4346aa/Screenshot_2024-02-08_204424.png)
* Create a relations...## Steps to replicate :
* Create a membership type configured with a relationship in both directions.
![Screenshot 2024-02-08 204424.png](/uploads/d4e47bd30b2673291f1e8c5bfe4346aa/Screenshot_2024-02-08_204424.png)
* Create a relationship between contacts that have this relationship "Shares home"
* Create a primary membership on one of them.
* On membership view screen, we can't see the related contact
![Screenshot 2024-02-08 205130.png](/uploads/63407ba8348abd8a2259ad59702c608b/Screenshot_2024-02-08_205130.png)
This should show like (fixed)
![Screenshot 2024-02-08 205008.png](/uploads/fde582a5808cf50f49f8d3fa80cf865c/Screenshot_2024-02-08_205008.png)
I can confirm this is not working on dmaster as well.yashodhayashodhahttps://lab.civicrm.org/dev/core/-/issues/4983FormBuilder - allow injection of js files to afform forms2024-02-14T09:54:42ZseamusleeFormBuilder - allow injection of js files to afform formsAs part of JMA's geotargeted petition extension we have some javascript that we inject on the front end https://lab.jmaconsulting.biz/extensions/geotargetedpetitions/-/blob/main/geotargetedpetitions.php?ref_type=heads#L58. The purpose of...As part of JMA's geotargeted petition extension we have some javascript that we inject on the front end https://lab.jmaconsulting.biz/extensions/geotargetedpetitions/-/blob/main/geotargetedpetitions.php?ref_type=heads#L58. The purpose of the Javascript is to do a dynamic lookup based on address information entered and then add checkboxes onto the form of "your local representatives that we will be contacting"
Is there a way to be able to do this within the GUI of form builder or similar to make it easier to always ensure that the js is loaded rather than just based on a specific block being on the form
@JoeMurray @Edselopez @colemanwhttps://lab.civicrm.org/dev/core/-/issues/4982Form builder - Extension provided entity settings2024-02-14T09:53:44ZseamusleeForm builder - Extension provided entity settingsJMA is in the progress of working on a geographically targeted petition extension
At the moment we have some additional settings that we get a user to set when creating the petition page in Form Builder. These get injected by the alter ...JMA is in the progress of working on a geographically targeted petition extension
At the moment we have some additional settings that we get a user to set when creating the petition page in Form Builder. These get injected by the alter angular hook https://lab.jmaconsulting.biz/extensions/geotargetedpetitions/-/blob/main/geotargetedpetitions.php?ref_type=heads#L76 however this means that even on non petition related form builder forms they will show up.
This is about seeing if there is a better way to achieve this and or see if we can get them put onto the specific settings page for say GeotargetedPetition Entity.
@JoeMurray @Edselopez @colemanwhttps://lab.civicrm.org/dev/core/-/issues/4979Should `die()` be called when a DB Query fails?2024-02-14T09:49:16ZhaystackShould `die()` be called when a DB Query fails?Overview
----------------------------------------
As the title says, when a DB Query fails, `CRM_Utils_File::runSqlQuery()` [calls](https://github.com/civicrm/civicrm-core/blob/fd4913060d8e944a99abe30c22ba670ed0e51a9a/CRM/Utils/File.php#...Overview
----------------------------------------
As the title says, when a DB Query fails, `CRM_Utils_File::runSqlQuery()` [calls](https://github.com/civicrm/civicrm-core/blob/fd4913060d8e944a99abe30c22ba670ed0e51a9a/CRM/Utils/File.php#L327) `die()` and all script execution stop *ahem* dead. Is this intentional?
Reproduction steps
----------------------------------------
1. Install the "Deduper" Extension (v1.7) via the API (sorry @eileen :dove:)
1. See the unrecoverable error "**Cannot execute INSERT INTO civicrm_contact_name_pair_family (id, name_a, name_b, is_most_common_form, is_active) VALUES (65, 'Takahashi', '髙𣘺', 0, 1)**".
Current behaviour
----------------------------------------
There's no way to trap this and continue with a script that installs Extensions via the API.
Edit: apparently there [is a way](https://stackoverflow.com/a/16925225) but this seems a less than sensible way to go about trapping the error.
Expected behaviour
----------------------------------------
A script that installs Extensions via the API should be able to trap the error as an `Exception` with `try/catch` and act accordingly.https://lab.civicrm.org/dev/core/-/issues/4978Creating a user was not succesful2024-02-14T09:48:02ZBetty DolfingCreating a user was not succesfulI wanted to add a user to civistandalone, but had to try 5 times, before I was succesful.
I tried in FF first and after 5 times I switched to Chrome. Then a user was created.
I have the impression that not so much the browser caused th...I wanted to add a user to civistandalone, but had to try 5 times, before I was succesful.
I tried in FF first and after 5 times I switched to Chrome. Then a user was created.
I have the impression that not so much the browser caused the problem, but some kind of error.
However, I only saw for a split second an error message in the right hand corner, so am not aware of the _type_ of error.
For now I am ok and when I add users, I will just keep on trying till I am succesful.
But when Civi stand alone is beyond the beta version, this needs to be fixed.https://lab.civicrm.org/dev/core/-/issues/3574Password for mail accounts should not be stored in plain text2024-02-14T05:03:29ZscardiniusPassword for mail accounts should not be stored in plain textMySQL field civicrm_mail_settings.password contains password in plain text. Should it? I think not
This issue could by linked with https://lab.civicrm.org/dev/core/issues/236MySQL field civicrm_mail_settings.password contains password in plain text. Should it? I think not
This issue could by linked with https://lab.civicrm.org/dev/core/issues/236https://lab.civicrm.org/dev/core/-/issues/3573Unsubscribe fails but appears to have worked for resending to previous mailin...2024-02-14T05:03:29ZRichUnsubscribe fails but appears to have worked for resending to previous mailing to search resultsRecreate with 5.2.2 (on Dupal 7)
1. create mailing group A
2. create other group B
4. add contact into group: B
5. do mailing to contacts in group B, using group A as unsubscribe. (i.e. Find » In Group B » Action: create CiviMail mailin...Recreate with 5.2.2 (on Dupal 7)
1. create mailing group A
2. create other group B
4. add contact into group: B
5. do mailing to contacts in group B, using group A as unsubscribe. (i.e. Find » In Group B » Action: create CiviMail mailing)
7. Create and send mailing: sent to recipients of mlg1
8. click unsubscribe.
## Expect
to see confirm form saying "you will be unsubscribed from A" because A was the base group used for the original mailing. (When sending to previous mailing recipients there is no option to select an unsubscribe group)
## Actual
User sees "yes you've been unsubscribed from the mailing group/list" [code ref](https://lab.civicrm.org/dev/core/blob/master/CRM/Mailing/Form/Unsubscribe.php#L71) but nothing has actually happened!https://lab.civicrm.org/dev/core/-/issues/49895.69.4>5 regression - Multiple currency issues in contribution page workflow2024-02-13T19:58:40ZJKingsnorth5.69.4>5 regression - Multiple currency issues in contribution page workflowTesting latest master we have multiple issues when setting a contribution page to a non-default currency.
In all the following examples I changed the currency of the contribution page to JPY.
---
1 - 'Confirm' and 'Thank You' pages sh...Testing latest master we have multiple issues when setting a contribution page to a non-default currency.
In all the following examples I changed the currency of the contribution page to JPY.
---
1 - 'Confirm' and 'Thank You' pages show default instead of contribution page set currency
![image](/uploads/cfd5a92065599d8c937b806e1289e508/image.png)
---
2 - 'currency' variable is not being set correctly in ContributionBase, which could be affecting client side payment processors?
![image](/uploads/bb16b6e00884f747dbf18f0f6aaa22eb/image.png)
'currencyID' uses the form _values, 'currency' is using the default site currency.5.70.1https://lab.civicrm.org/dev/core/-/issues/3568Improve process for creating plain text version of mailing2024-02-13T05:03:24ZMichael McAndrewImprove process for creating plain text version of mailing## Overview
Convert any html contained in tokens to plain text for plain text emails
## Before
HTML in tokens that contained HTML was being outputted to plain text versions of emails.
## After
HTML in tokens is converted to plain te...## Overview
Convert any html contained in tokens to plain text for plain text emails
## Before
HTML in tokens that contained HTML was being outputted to plain text versions of emails.
## After
HTML in tokens is converted to plain text.
## Technical Details
This issue is NOT about generating plain text and HTML versions of tokens. It is about converting an entire email from HTML to plain text when no plain text version is given. This conversion currently proceeds as follows:
1. Check to see if a plain text version has been submitted. If not
2. Convert the HTML to plain text
3. Do token substitution
The problem is that if the token contains html, that HTML persists in the email. The proposed solution is to do the conversion from HTML to plain text after token substitution, i.e.
1. Check to see if a plain text version has been submitted. If not
2. Convert the HTML to plain text
3. Do token substitution
This patch is split between [PR 12061 on core](https://github.com/civicrm/civicrm-core/pull/12061) and [PR 20 on flexmailer](https://github.com/civicrm/org.civicrm.flexmailer/pull/20).
The flexmailer patch will continue to report a single failure until the core patch is merged, at which point we can hopefully run the tests against flexmailer again and merge this patch.
@totten suggested defining tokens with TokenProcessor, whose tokens auto-convert from HTML to plain text and visa versa. However, I am not sure this is going to work for the following reason. When you convert from HTML to plain text (at least with the HTML to plain text converter that we are using) the structure of the text is altered and links appear at the bottom of the converted text. Therefore, if you run multiple conversions, you will get multiple lists of links scattered throughout the email. Best to do html to plain text conversion at the end of the process.
All this is not to say that one shouldn't define plain text and HTML versions of tokens. I think it is fine to do that if you want to. I just think that automatic conversion of HTML to plain text should happen one time only, after the entire email has been assembled.
Note that [PR 12061 on core](https://github.com/civicrm/civicrm-core/pull/12061) removes the check for nofollow in the email html output of the test CRM_Mailing_BaseMailingSystemTest::testHtmlWithOpenAndUrlTracking. The intent of https://issues.civicrm.org/jira/browse/CRM-21768 is not affected. nofollow still appears in the public view (e.g. http://example.org/civicrm/mailing/view) but it is not tested.
I would have added it to a test of civicrm/mailing/view but I could not find any tests there.
This issue was originally discussed here: https://issues.civicrm.org/jira/browse/CRM-21197 and a PR submitted here: https://github.com/civicrm/civicrm-core/pull/10998. But the PR was rejected because it caused issues with Flexmailer.
Also, on the seperate issue of click tracking plain text emails. @totten - you said [here](https://github.com/civicrm/civicrm-core/pull/10998#discussion_r158175327) that you thought it was a significant policy change. It isn't as significant as you think. *Links that are tracked in HTML continue to be tracked in plain text*. Links that are not tracked in HTML (because they were not in an `<a>` tag) are not tracked in plain text either. i.e. there is no significant loss of functionality.https://lab.civicrm.org/dev/core/-/issues/3563Include optional unsubscribe group field on regular mailings2024-02-13T05:03:23ZlarsssandergreenInclude optional unsubscribe group field on regular mailingsWhen you create a mailing from search results, you are required to add an unsubscribe group. When you create a regular mailing and add groups to the recipients, you can't specify the unsubscribe group. Sometimes, it would be helpful to b...When you create a mailing from search results, you are required to add an unsubscribe group. When you create a regular mailing and add groups to the recipients, you can't specify the unsubscribe group. Sometimes, it would be helpful to be able to specify an unsubscribe group that is different than the group the contact is a member of. For instance, if you send a mailing to a few groups based on your main mailing list, perhaps a set of smart group that are subsets of the main list, you may want contacts to unsubscribe from your main list instead of the smart group.
Proposal: Add an optional unsubscribe group to all mailings. If it is blank, unsubscribes work as they do now. If it is populated, all recipients are unsubscribed from the unsubscribe group (exactly as this works for a mailing based on a search now).
EDIT: On @JoeMurray's suggestion, contacts would be unsubscribed from both the original group that are recipients of the mailing and the specified unsubscribe group.
I can give this a go if there is support for the concept.https://lab.civicrm.org/dev/core/-/issues/4997Anonymous visitors cannot access a contribution page with financial type by A...2024-02-12T21:08:46ZandyburnsAnonymous visitors cannot access a contribution page with financial type by ACL enabledOn a vanilla WP 6.4.3 and CiviCRM 5.70 dummy site, enabling `Enable Access Control by Financial Type` results in the contribution page being inaccessible and redirects back to the home page.
The goal of using this feature is for back-e...On a vanilla WP 6.4.3 and CiviCRM 5.70 dummy site, enabling `Enable Access Control by Financial Type` results in the contribution page being inaccessible and redirects back to the home page.
The goal of using this feature is for back-end contribution access for different types of users.
![image.png](/uploads/bea2e67bd300271650dbef7de9267ba7/image.png)
* `add_contributions_of_type_donation` and `view_contributions_of_type_donation` permissions are given to the `anonymous_user` role.
* I've [hit this before](https://chat.civicrm.org/civicrm/pl/5wzfkebnebfutbi1o8orkxsh8c) but that was when these permissions were missing and I updated the [docs to reflect this requirement](https://docs.civicrm.org/user/en/latest/initial-set-up/permissions-and-access-control/#financial-type-permissions).
* Event Registration pages work without issue when the financial types are properly granted to the anonymous_user `add_contributions_of_type_event_fee` and `view_contributions_of_type_event_fee`
* I've reproduced this issue back to at least Civi 5.68. Last worked on 5.65.1. I'm sure others use this feature so odd I'm reporting but there you go.
## Anonymous User Permissions
* access_all_custom_data
* access_civimail_subscribe_unsubscribe_pages
* access_uploaded_files
* add_contributions_of_type_donation
* add_contributions_of_type_event_fee
* add_contributions_of_type_member_dues
* make_online_contributions
* profile_create
* profile_edit
* profile_view
* register_for_events
* sign_civicrm_petition
* view_contributions_of_type_donation
* view_contributions_of_type_event_fee
* view_contributions_of_type_member_dues
* view_event_info
* view_my_invoices
* view_public_civimail_content
## Backtrace error:
```plaintext
2024-02-09 19:16:28+0000 [debug] $API Request Authorization failed = #0 /home/user/example.org/wp-content/plugins/civicrm/civicrm/Civi/API/Kernel.php(151): CRM_Core_Error::backtrace("API Request Authorization failed", TRUE)
#1 /home/user/example.org/wp-content/plugins/civicrm/civicrm/Civi/Api4/Generic/AbstractAction.php(256): Civi\API\Kernel->runRequest(Object(Civi\Api4\Generic\DAOGetAction))
#2 /home/user/example.org/wp-content/plugins/civicrm/civicrm/CRM/Financial/BAO/FinancialType.php(181): Civi\Api4\Generic\AbstractAction->execute()
#3 /home/user/example.org/wp-content/plugins/civicrm/civicrm/CRM/Contribute/BAO/ContributionPage.php(822): CRM_Financial_BAO_FinancialType::getIncomeFinancialType(TRUE)
#4 /home/user/example.org/wp-content/plugins/civicrm/civicrm/Civi/Api4/Utils/FormattingUtil.php(306): CRM_Contribute_BAO_ContributionPage::buildOptions("financial_type_id", "validate", (Array:2))
#5 /home/user/example.org/wp-content/plugins/civicrm/civicrm/Civi/Api4/Utils/FormattingUtil.php(257): Civi\Api4\Utils\FormattingUtil::getPseudoconstantList((Array:37), "financial_type_id:name", (Array:2), "get")
#6 /home/user/example.org/wp-content/plugins/civicrm/civicrm/Civi/Api4/Query/Api4SelectQuery.php(108): Civi\Api4\Utils\FormattingUtil::formatOutputValues((Array:2), (Array:48), "get", (Array:2))
#7 /home/user/example.org/wp-content/plugins/civicrm/civicrm/Civi/Api4/Generic/DAOGetAction.php(107): Civi\Api4\Query\Api4SelectQuery->run()
#8 /home/user/example.org/wp-content/plugins/civicrm/civicrm/Civi/Api4/Generic/DAOGetAction.php(94): Civi\Api4\Generic\DAOGetAction->getObjects(Object(Civi\Api4\Generic\Result))
#9 /home/user/example.org/wp-content/plugins/civicrm/civicrm/Civi/Api4/Provider/ActionObjectProvider.php(72): Civi\Api4\Generic\DAOGetAction->_run(Object(Civi\Api4\Generic\Result))
#10 /home/user/example.org/wp-content/plugins/civicrm/civicrm/Civi/API/Kernel.php(156): Civi\Api4\Provider\ActionObjectProvider->invoke(Object(Civi\Api4\Generic\DAOGetAction))
#11 /home/user/example.org/wp-content/plugins/civicrm/civicrm/Civi/Api4/Generic/AbstractAction.php(256): Civi\API\Kernel->runRequest(Object(Civi\Api4\Generic\DAOGetAction))
#12 /home/user/example.org/wp-content/plugins/civicrm/civicrm/api/api.php(91): Civi\Api4\Generic\AbstractAction->execute()
#13 /home/user/example.org/wp-content/plugins/civicrm/civicrm/Civi/API/EntityLookupTrait.php(111): civicrm_api4("ContributionPage", "get", (Array:3))
#14 /home/user/example.org/wp-content/plugins/civicrm/civicrm/CRM/Contribute/Form/ContributeFormTrait.php(81): CRM_Contribute_Form_ContributionBase->lookup("ContributionPage", "financial_type_id:name")
#15 /home/user/example.org/wp-content/plugins/civicrm/civicrm/ext/financialacls/financialacls.php(431): CRM_Contribute_Form_ContributionBase->getContributionPageValue("financial_type_id:name")
#16 /home/user/example.org/wp-content/plugins/civicrm/civicrm/CRM/Utils/Hook.php(276): financialacls_civicrm_preProcess("CRM_Contribute_Form_Contribution_Main", Object(CRM_Contribute_Form_Contribution_Main))
#17 /home/user/example.org/wp-content/plugins/civicrm/civicrm/CRM/Utils/Hook/WordPress.php(136): CRM_Utils_Hook->runHooks((Array:16), "civicrm_preProcess", 2, "CRM_Contribute_Form_Contribution_Main", Object(CRM_Contribute_Form_Contribution_Main), NULL, NULL, NULL, NULL)
#18 /home/user/example.org/wp-content/plugins/civicrm/civicrm/Civi/Core/CiviEventDispatcher.php(314): CRM_Utils_Hook_WordPress->invokeViaUF(2, "CRM_Contribute_Form_Contribution_Main", Object(CRM_Contribute_Form_Contribution_Main), NULL, NULL, NULL, NULL, "civicrm_preProcess")
#19 /home/user/example.org/wp-content/plugins/civicrm/civicrm/vendor/symfony/event-dispatcher/EventDispatcher.php(251): Civi\Core\CiviEventDispatcher::delegateToUF(Object(Civi\Core\Event\GenericHookEvent), "hook_civicrm_preProcess", Object(Civi\Core\UnoptimizedEventDispatcher))
#20 /home/user/example.org/wp-content/plugins/civicrm/civicrm/vendor/symfony/event-dispatcher/EventDispatcher.php(73): Symfony\Component\EventDispatcher\EventDispatcher->callListeners((Array:1), "hook_civicrm_preProcess", Object(Civi\Core\Event\GenericHookEvent))
#21 /home/user/example.org/wp-content/plugins/civicrm/civicrm/Civi/Core/CiviEventDispatcher.php(263): Symfony\Component\EventDispatcher\EventDispatcher->dispatch(Object(Civi\Core\Event\GenericHookEvent), "hook_civicrm_preProcess")
#22 /home/user/example.org/wp-content/plugins/civicrm/civicrm/CRM/Utils/Hook.php(168): Civi\Core\CiviEventDispatcher->dispatch("hook_civicrm_preProcess", Object(Civi\Core\Event\GenericHookEvent))
#23 /home/user/example.org/wp-content/plugins/civicrm/civicrm/CRM/Utils/Hook.php(476): CRM_Utils_Hook->invoke((Array:2), "CRM_Contribute_Form_Contribution_Main", Object(CRM_Contribute_Form_Contribution_Main), NULL, NULL, NULL, NULL, "civicrm_preProcess")
#24 /home/user/example.org/wp-content/plugins/civicrm/civicrm/CRM/Core/Form.php(733): CRM_Utils_Hook::preProcess("CRM_Contribute_Form_Contribution_Main", Object(CRM_Contribute_Form_Contribution_Main))
#25 /home/user/example.org/wp-content/plugins/civicrm/civicrm/CRM/Core/QuickForm/Action/Display.php(76): CRM_Core_Form->buildForm()
#26 /home/user/example.org/wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Controller.php(203): CRM_Core_QuickForm_Action_Display->perform(Object(CRM_Contribute_Form_Contribution_Main), "display")
#27 /home/user/example.org/wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Page.php(103): HTML_QuickForm_Controller->handle(Object(CRM_Contribute_Form_Contribution_Main), "display")
#28 /home/user/example.org/wp-content/plugins/civicrm/civicrm/CRM/Core/Controller.php(355): HTML_QuickForm_Page->handle("display")
#29 /home/user/example.org/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(322): CRM_Core_Controller->run((Array:3), NULL)
#30 /home/user/example.org/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(69): CRM_Core_Invoke::runItem((Array:18))
#31 /home/user/example.org/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(36): CRM_Core_Invoke::_invoke((Array:3))
#32 /home/user/example.org/wp-content/plugins/civicrm/civicrm.php(1231): CRM_Core_Invoke::invoke((Array:3))
#33 /home/user/example.org/wp-content/plugins/civicrm/includes/civicrm.shortcodes.php(433): CiviCRM_For_WordPress->invoke()
#34 /home/user/example.org/wp-includes/shortcodes.php(433): CiviCRM_For_WordPress_Shortcodes->render_single((Array:5), "", "civicrm")
#35 [internal function](): do_shortcode_tag((Array:7))
#36 /home/user/example.org/wp-includes/shortcodes.php(273): preg_replace_callback("/\[(\[?)(civicrm)(?![\w-])([^\]\/]*(?:\/(?!\])[^\]\/]*)*?)(?:(\/)\]|\](?:([^\...", "do_shortcode_tag", "[civicrm component=\"contribution\" id=\"1\" action=\"transact\" mode=\"live\...")
#37 /home/user/example.org/wp-content/plugins/civicrm/includes/civicrm.shortcodes.php(232): do_shortcode("[civicrm component=\"contribution\" id=\"1\" action=\"transact\" mode=\"live\...")
#38 /home/user/example.org/wp-includes/class-wp-hook.php(324): CiviCRM_For_WordPress_Shortcodes->prerender(Object(WP))
#39 /home/user/example.org/wp-includes/class-wp-hook.php(348): WP_Hook->apply_filters(NULL, (Array:1))
#40 /home/user/example.org/wp-includes/plugin.php(565): WP_Hook->do_action((Array:1))
#41 /home/user/example.org/wp-includes/class-wp.php(830): do_action_ref_array("wp", (Array:1))
#42 /home/user/example.org/wp-includes/functions.php(1336): WP->main("")
#43 /home/user/example.org/wp-blog-header.php(16): wp()
#44 /home/user/example.org/index.php(17): require("/home/user/example.org/wp-blog-header.php")
#45 {main}
```
## System Info
PHP version 8.0.30
**Extensions**
* AuthX: Version 5.70.0
* CiviCampaign: Version 5.70.0
* CiviContribute: Version 5.70.0
* CiviEvent: Version 5.70.0
* CiviMail: Version 5.70.0
* CiviMember: Version 5.70.0
* CiviReport: Version 5.70.0
* CKEditor4: Version 5.70.0
* Financial ACLs: Version 5.70.0
* FlexMailer: Version 5.70.0
* Form Core: Version 5.70.0
* reCAPTCHA: Version 5.70.0
* SearchKit: Version 5.70.0
* Sequential credit notes: Version 5.70.0
* Theme: Greenwich: Version 5.70.0
Thoughts? Is there a missing setting or is this an actual bug?5.71.0https://lab.civicrm.org/dev/core/-/issues/5003Event Custom Data - No Data Input Allowed2024-02-12T19:46:11ZtreseroEvent Custom Data - No Data Input AllowedPHP 8.1 Civi 5.69.4
I'm not sure if there is an issue, or a misunderstanding, but following the docs, I can get custom data to show, but it is not editable. BTW, I would like to work on the docs if that is allowed. Some of them are outd...PHP 8.1 Civi 5.69.4
I'm not sure if there is an issue, or a misunderstanding, but following the docs, I can get custom data to show, but it is not editable. BTW, I would like to work on the docs if that is allowed. Some of them are outdated or reference things that don't exist.
Anyway, I have this custom data that I want to add and it shows on the event page, you just can't input any data.
![image.png](/uploads/ea7861dc78a8358a92b57fd1a9274d40/image.png)
It seems I can't upload more than one image, but the Cast Year is a text box and travel is a yes/nohttps://lab.civicrm.org/dev/core/-/issues/5001PHP 8.1 Event Warnings2024-02-12T19:29:56ZtreseroPHP 8.1 Event WarningsThere are many warnings when using PHP 8.1.
They should probably be cleaned up at some point, since they are just clogging up the server logs.
**Environment**: WordPress with CiviCRM
**Description**: Several PHP warnings were encount...There are many warnings when using PHP 8.1.
They should probably be cleaned up at some point, since they are just clogging up the server logs.
**Environment**: WordPress with CiviCRM
**Description**: Several PHP warnings were encountered during the registration process for an event. These warnings suggest issues with undefined array keys and attempts to read properties on null values in the CiviCRM templates and extensions.
**Errors Encountered**:
1. PHP Warning: Attempt to read property "value" on null in **`wp-content/uploads/civicrm/templates_c/en_US/.../Register.tpl.php`** on various lines.
2. PHP Warning: Undefined array key "confirm_footer_text" in **`wp-content/uploads/civicrm/templates_c/en_US/.../Confirm.tpl.php`**.
3. PHP Warning: Undefined array key "showBlocks" in **`wp-content/uploads/civicrm/templates_c/en_US/.../showHide.tpl.php`**.
4. PHP Warning: Undefined array key "hideBlocks" in the same file.
5. PHP Warning: Undefined array key "elemType" in the same file.
6. PHP Warning: Trying to access array offset on value of type null in **`wp-content/uploads/civicrm/ext/ogp-1.4/ogp.php`**.
7. PHP Warning: Undefined array key "lineItem", "pcpBlock", "totalTaxAmount" in **`wp-content/uploads/civicrm/templates_c/en_US/.../Confirm.tpl.php`**.
8. PHP Warning: Undefined array key 1 in **`wp-content/uploads/civicrm/templates_c/en_US/.../EventInfoBlock.tpl.php`**.
**Referer**: All warnings were encountered during the event registration process, with URLs sanitized to **`https://[sanitized_url].org/civicrm/event/register/...`**.
**Note**: The specific template and extension files, along with the exact line numbers for each warning, are available upon request. The warnings suggest missing data handling in the template logic or missing initialization of expected data structures.https://lab.civicrm.org/dev/core/-/issues/4941Number field input validation does not respect decimal separator setting (eve...2024-02-12T17:14:12ZDetlev SieberNumber field input validation does not respect decimal separator setting (event custom field)## Overview
This is a variant of https://lab.civicrm.org/dev/core/-/issues/4154, regarding custom fields for events of type _This iPlease describe your problem or bug in detail._
_If you have already posted on __https://civicrm.stackex...## Overview
This is a variant of https://lab.civicrm.org/dev/core/-/issues/4154, regarding custom fields for events of type _This iPlease describe your problem or bug in detail._
_If you have already posted on __https://civicrm.stackexchange.com__ or __https://chat.civicrm.org__, please include the link to that conversation._
## Reproduction steps
1. Under Administer \> Localization \> Languages, Currency, Locations, set "Thousands Separator" to "." (dot) and "Decimal Delimiter" to "," (comma).
2. Create a custom field extending Events. Data type: Number.
3. Edit an existing event (or: add a new event). In the number field, enter a number that includes a comma, such as "1,5".
4. Press Save: nothing happens
5. Reload page: Error message appears "**Error One of parameters (value: 1,5) is not of the type Float**"
## Current behaviour
Validation fails with the error message "**Error One of parameters (value: 1,5) is not of the type Float**"
## Expected behaviour
Validation should not fail for decimal numbers with decimal separator ","
## Environment information
* **CiviCRM:** 5.69.3
* **PHP:** 7,4, 8.1
* **CMS:** Drupal, WordPress
## Comments
This bug was fixed for some fields with #4154 (https://github.com/civicrm/civicrm-core/pull/28369)
Also, I believe this is some kind of regression, because in a system of one of my clients, this did work \~15 months ago. However, tbh I have no clear idea when it broke. (and still, it cannot completely excluded that the existing data was entered with decimal separator ".")5.71.0https://lab.civicrm.org/dev/core/-/issues/4873SearchKit - Add inputMode setting to allow clauses to reference column values...2024-02-12T16:30:40ZsamuelsovSearchKit - Add inputMode setting to allow clauses to reference column values in conditionsRelated to https://github.com/civicrm/civicrm-core/pull/28112
The next step is to allow the feature of field selection for conditions :
![image](/uploads/c400052bf32ca7944a87fdae2d2d3bf6/image.png)
I believe it's already possible from...Related to https://github.com/civicrm/civicrm-core/pull/28112
The next step is to allow the feature of field selection for conditions :
![image](/uploads/c400052bf32ca7944a87fdae2d2d3bf6/image.png)
I believe it's already possible from the managed file so it's likely only a UI limitation.colemanwcolemanwhttps://lab.civicrm.org/dev/core/-/issues/3539When communcating with external network services, detect transient failures a...2024-02-12T13:57:20ZmfbWhen communcating with external network services, detect transient failures and queue for retryFor improved resiliency, CiviCRM should detect transient failures when communicating with external network services and queue for retry. e.g.
* Transactional email: Queue for sending rather than sending during the request process?
* Bul...For improved resiliency, CiviCRM should detect transient failures when communicating with external network services and queue for retry. e.g.
* Transactional email: Queue for sending rather than sending during the request process?
* Bulk mail: Catch transient failures and ensure that they are retried. PRs: https://github.com/civicrm/civicrm-core/pull/11838 https://github.com/civicrm/civicrm-core/pull/11840 (and there are additional failure scenarios possible)
* ...https://lab.civicrm.org/dev/core/-/issues/4390Multiple Participant Event Registration Issue2024-02-12T09:17:09ZChiplehMultiple Participant Event Registration Issue1. We can successfully submit a multi-participant event registration with custom data in the profiles with the dummy processor.
2. We cannot do so either with core Paypal Website Payments Pro or Stripe.
3. Removing any custom fields f...1. We can successfully submit a multi-participant event registration with custom data in the profiles with the dummy processor.
2. We cannot do so either with core Paypal Website Payments Pro or Stripe.
3. Removing any custom fields from the profiles allowed us to successfully submit a payment for the event with Stripe.
4. We can confirm the registration was charged correctly.
5. Something with payment processing (core Paypal Website Payments Pro and Stripe extension) is not working properly when custom fields have been added to the CiviEvent registration form.
6. This happens both in WordPress and Drupal 7. In WordPress, this occurs whether the registration form is accessed directly or embedded in a page via shortcode.
Details (site 1):
WordPress 6.2.1
CiviCRM ESR 5.57.4
Stripe Extension: 6.7.14
https://lab.civicrm.org/extensions/stripe
Firewall Extension: 1.5.7
https://lab.civicrm.org/extensions/firewall
Paypal Website Payments Pro (core integration)
PHP 8.0
Details (site 2):
Drupal 7.98
CiviCRM ESR 5.57.4
Paypal Website Payments Pro (core integration)
PHP 8.0
To replicate:
1. Add a custom field group to the event registration form.
2. Go to /civicrm/event/register/?reset=1&action=preview&id=[event_id] and test with multiple participants (2 or more), dummy card # appropriate for the payment processor, any CVV, any date in future
2. Critical error after submitting at the end.
WordPress error from log:
[debug] $backTrace = #0 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/Error.php(441): CRM_Core_Error::backtrace("backTrace", TRUE)
#1 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(39): CRM_Core_Error::handleUnhandledException(Object(CRM_Core_Exception))
#2 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm.php(1199): CRM_Core_Invoke::invoke((Array:3))
#3 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/includes/civicrm.basepage.php(380): CiviCRM_For_WordPress->invoke()
#4 /home/XXXXXXXXXXX/www/www/wp-includes/class-wp-hook.php(308): CiviCRM_For_WordPress_Basepage->basepage_handler(Object(WP))
#5 /home/XXXXXXXXXXX/www/www/wp-includes/class-wp-hook.php(332): WP_Hook->apply_filters(NULL, (Array:1))
#6 /home/XXXXXXXXXXX/www/www/wp-includes/plugin.php(565): WP_Hook->do_action((Array:1))
#7 /home/XXXXXXXXXXX/www/www/wp-includes/class-wp.php(797): do_action_ref_array("wp", (Array:1))
#8 /home/XXXXXXXXXXX/www/www/wp-includes/functions.php(1334): WP->main("")
#9 /home/XXXXXXXXXXX/www/www/wp-blog-header.php(16): wp()
#10 /home/XXXXXXXXXXX/www/www/index.php(17): require("/home/XXXXXXXXXXX/www/www/wp-blog-header.php")
#11 {main}
Could this be an issue with PHP 8?
After reviewing the error log, we see:
Warning: Array to string conversion in /wp-content/plugins/civicrm/civicrm/CRM/Contact/BAO/Query.php on line 655
Fatal error: Uncaught TypeError: preg_match(): Argument #2 ($subject) must be of type string, array given in /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/BAO/CustomField.php:692 Stack trace: #0 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/BAO/CustomField.php(692): preg_match('/^custom_(\\d+)_...', Array, Array) #1 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Contact/BAO/Query.php(655): CRM_Core_BAO_CustomField::getKeyID(Array) #2 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Contact/BAO/Query.php(559): CRM_Contact_BAO_Query->buildParamsLookup() #3 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Contact/BAO/Query.php(524): CRM_Contact_BAO_Query->initialize(NULL) #4 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Event/BAO/Event.php(1696): CRM_Contact_BAO_Query->__construct(Array, Array, Array) #5 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Event/Form/Registration/Confirm.php(1178): CRM_Event_BAO_Event::displayProfile(Array, '263', Array, Array, Array) #6 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Event/Form/Registration/Confirm.php(273): CRM_Event_Form_Registration_Confirm::assignProfiles(Object(CRM_Event_Form_Registration_Confirm)) #7 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/Form.php(689): CRM_Event_Form_Registration_Confirm->buildQuickForm() #8 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/StateMachine.php(120): CRM_Core_Form->buildForm() #9 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/QuickForm/Action/Next.php(43): CRM_Core_StateMachine->perform(Object(CRM_Event_Form_Registration_Confirm), 'next', 'Next') #10 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Controller.php(203): CRM_Core_QuickForm_Action_Next->perform(Object(CRM_Event_Form_Registration_Confirm), 'next') #11 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Page.php(103): HTML_QuickForm_Controller->handle(Object(CRM_Event_Form_Registration_Confirm), 'next') #12 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/Controller.php(355): HTML_QuickForm_Page->handle('next') #13 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(319): CRM_Core_Controller->run(Array, NULL) #14 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(69): CRM_Core_Invoke::runItem(Array) #15 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(36): CRM_Core_Invoke::_invoke(Array) #16 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm.php(1199): CRM_Core_Invoke::invoke(Array) #17 /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/includes/civicrm.basepage.php(380): CiviCRM_For_WordPress->invoke() #18 /home/XXXXXXXXXXX/www/www/wp-includes/class-wp-hook.php(308): CiviCRM_For_WordPress_Basepage->basepage_handler(Object(WP)) #19 /home/XXXXXXXXXXX/www/www/wp-includes/class-wp-hook.php(332): WP_Hook->apply_filters(NULL, Array) #20 /home/XXXXXXXXXXX/www/www/wp-includes/plugin.php(565): WP_Hook->do_action(Array) #21 /home/XXXXXXXXXXX/www/www/wp-includes/class-wp.php(797): do_action_ref_array('wp', Array) #22 /home/XXXXXXXXXXX/www/www/wp-includes/functions.php(1334): WP->main('') #23 /home/XXXXXXXXXXX/www/www/wp-blog-header.php(16): wp() #24 /home/XXXXXXXXXXX/www/www/index.php(17): require('/home/harrisbur...') #25 {main} thrown in /home/XXXXXXXXXXX/www/www/wp-content/plugins/civicrm/civicrm/CRM/Core/BAO/CustomField.php on line 692
There has been a critical error on this website.5.71.0https://lab.civicrm.org/dev/core/-/issues/3562Message templates and headers might or might not be processed by Smarty2024-02-12T05:03:29ZmfbMessage templates and headers might or might not be processed by SmartyCIVICRM_MAIL_SMARTY allows the admin to disable Smarty for bulk mail, and some other senders such as CRM_Activity_BAO_Activity::sendEmail() also honor the toggle. However, a message template sent to a contact via CRM_Core_BAO_MessageTemp...CIVICRM_MAIL_SMARTY allows the admin to disable Smarty for bulk mail, and some other senders such as CRM_Activity_BAO_Activity::sendEmail() also honor the toggle. However, a message template sent to a contact via CRM_Core_BAO_MessageTemplate::sendTemplate() will always be processed by Smarty.
Relatedly, some tokens are only available in certain contexts. {domain.address} is not available with CRM_Activity_BAO_Activity::sendEmail() but is available with CRM_Core_BAO_MessageTemplate::sendTemplate().
This leads to some confusion because message templates and headers need to be formatted differently depending on whether or not they will processed by Smarty, but the Civi UI allows them to be sent both ways. CSS needs to be wrapped with {literal} {/literal} when it will be processed by Smarty; when not processed by Smarty, CSS should not be wrapped.
I don't have a solution for this at the moment, but I think it's worth flagging as an issue re: both user experience and developer experience.https://lab.civicrm.org/dev/core/-/issues/3543Provide warning for mailings that are being edited to prevent Mailing not sav...2024-02-12T05:03:28ZlarsssandergreenProvide warning for mailings that are being edited to prevent Mailing not saved errors.In our org, we have multiple users who might need to edit the same mailing. Unfortunately, this creates the possibility that someone leaves the mailing open and someone else opens it and begins editing, leading to the "Mailing not saved....In our org, we have multiple users who might need to edit the same mailing. Unfortunately, this creates the possibility that someone leaves the mailing open and someone else opens it and begins editing, leading to the "Mailing not saved. Content may be out of date" error (and tears and hair loss due to lost changes). In our case, this is mostly one user putting together a mailing and another user editing it, fixing formatting errors, etc. It's very hard to train users who are used to Google Docs not to leave the tab open, leading to the need for rigid hand off procedures. We've been trying to get people trained for years, but this continues to be an issue that we waste a lot of time on.
Would it be feasible to add some kind of warning that would warn another user who wants to open another mailing that is already open for editing? I'm thinking just setting a flag on the mailing with a 30 minute expiration, which is updated every time the mailing or content is saved. The flag would be unset when the user exits the mailing. Mailings with the flag would have a warning on the draft mailings screen that would say "Someone else may be editing this mailing" or a warning before opening the mailing. This won't be a perfect solution, but I think it would prevent 95% of problems.
We're using Mosaico, but I think this would be implemented in core and apply to both kinds of mailings.https://lab.civicrm.org/dev/core/-/issues/3541[Meta] Does CiviCRM have a single defined application HTTP entry point which ...2024-02-11T05:03:23Zxurizaemon[Meta] Does CiviCRM have a single defined application HTTP entry point which routes all requests?Various issues arise when we have multiple entry points to the application (eg scripts in `extern/`, direct call scripts like KCFinder `integration/civicrm.php`, IPN handlers).
These issues stem from duplicated / non-identical approache...Various issues arise when we have multiple entry points to the application (eg scripts in `extern/`, direct call scripts like KCFinder `integration/civicrm.php`, IPN handlers).
These issues stem from duplicated / non-identical approaches to bootstrapping / path discovery / session management.
The end goal here is to eliminate alternate entry points and ensure any callback uses CiviCRM's core routing.
As much as possible auth/bootstrap/url/path resolution should be handled in one place only (each) for maintainability.
## Background issues / examples:
* [CRM-17212](https://issues.civicrm.org/jira/browse/CRM-17212)
* [CRM-13249](https://issues.civicrm.org/jira/browse/CRM-13249)
* [CRM-12246](https://issues.civicrm.org/jira/browse/CRM-12246)
* cloud-native#6
* cloud-native#7
## Targets
* [`extern/authorizeIPN.php`](https://github.com/civicrm/civicrm-core/blob/master/extern/authorizeIPN.php), [`ipn.php`](https://github.com/civicrm/civicrm-core/blob/master/extern/ipn.php), [`pxIPN.php`](https://github.com/civicrm/civicrm-core/blob/master/extern/pxIPN.php) - IPN handlers → use `civicrm/ipn/%` entry point
* [`extern/cxn.php`](https://github.com/civicrm/civicrm-core/blob/master/extern/cxn.php)
* [`extern/open.php`](https://github.com/civicrm/civicrm-core/blob/master/extern/open.php) - endpoint to track mail opens via image URL
* [`extern/rest.php`](https://github.com/civicrm/civicrm-core/blob/master/extern/rest.php) - API endpoint → `civicrm/api/v3`, `civicrm/api/v4` etc
* [`extern/soap.php`](https://github.com/civicrm/civicrm-core/blob/master/extern/soap.php) - SOAP interface, still used by CiviSMTP? → `civicrm/soap`
* [`extern/url.php`](https://github.com/civicrm/civicrm-core/blob/master/extern/url.php) - Mailing redirect → `civicrm/redirect` ?
* [`packages/kcfinder/integration/civicrm.php`](https://github.com/civicrm/civicrm-packages/blob/master/kcfinder/integration/civicrm.php) - KCFinder integration for CiviCRM - IDK
IPN handlers should be tackled as those core payment processors are moved to extensions.