CiviCRM Core issueshttps://lab.civicrm.org/dev/core/-/issues2024-03-28T21:51:08Zhttps://lab.civicrm.org/dev/core/-/issues/5116Scheduled Reminders: with multi-lingual, the language filters are empty2024-03-28T21:51:08ZbgmScheduled Reminders: with multi-lingual, the language filters are emptyTo reproduce:
- Enable multi-lingual from Administer > Localization > Languages, the checkbox at the bottom of the screen
- Then go to Administer > Communications > Scheduled Reminders
- Add a new Reminder
Ignore everything, scroll dow...To reproduce:
- Enable multi-lingual from Administer > Localization > Languages, the checkbox at the bottom of the screen
- Then go to Administer > Communications > Scheduled Reminders
- Add a new Reminder
Ignore everything, scroll down to the "Recipients language", and notice that the list is empty:
![image](/uploads/1f83b3ccfd0c755f0609509c4172594a/image.png)
The regression was caused by: https://github.com/civicrm/civicrm-core/commit/de00a2b14f60a7f6fef59b5b3331c17fc1e3e061 - part of CiviCRM 5.66 (Symbiotic was on 5.65 and didn't see this until 5.70).
I don't know what's the best way of fixing it:
- The DAO correctly defines the callback for the `filter_contact_language` field
- QuickForm uses `addField()` to add the field using metadata
- `addField()` calls `ActionSchedule.getfields`, which fetches the metadata from the DAO
- `civicrm_api3_generic_getfields()` has code like this:
```
if (function_exists($helper)) {
// alter
$helper($metadata, $apiRequest);
}
```
which basically calls `_civicrm_api3_action_schedule_create_spec()`, and that then NULLs the callbacks, so the options are hidden in the UI.
@colemanw Any thoughts?
Bug found by @mmyriamcolemanwcolemanwhttps://lab.civicrm.org/dev/core/-/issues/5115a11y errors2024-03-28T20:43:12ZJoeMurraya11y errorsRunning a very vanilla setup we get the following accessibility errors (D10.2.3 / Civi 5.70.2 site, Finsbury Park theme enabled and Backend theme set to Finsbury Park and Aah disabled/alternating with Finsbury Park theme disabled and Aah...Running a very vanilla setup we get the following accessibility errors (D10.2.3 / Civi 5.70.2 site, Finsbury Park theme enabled and Backend theme set to Finsbury Park and Aah disabled/alternating with Finsbury Park theme disabled and Aah enabled and Backend theme set to Aah, Frontend Theme to Automatic. Using WAVE Web Accessibility Evaluation Tool 3.2.5.3 in Chrome browser 123.0.6312.86 on macOS Sonoma 14.4.1).
CiviCRM Home Page Errors:
- [ ] Missing form label on the QuickSearch element (Finsbury Park, Aah)
`<input type="text" id="crm-qsearch-input" name="sort_name" placeholder=" Name/Email" accesskey="q" class="ui-autocomplete-input" autocomplete="off">`
- [ ] Missing form label on Find menu item... (Finsbury Park, Aah)
`<input type="text" id="crm-menubar-drilldown" placeholder="Find menu item...">`
- [ ] Empty link (Finsbury Park, Aah)
```
<a href="#" class="has-submenu" id="sm-17116551805997053-1" aria-haspopup="true" aria-controls="sm-17116551805997053-2" aria-expanded="false">
<form action="/civicrm/contact/search/advanced" name="search_block" method="post">
<div>
AccesskeyMissing form label
<input type="text" id="crm-qsearch-input" name="sort_name" placeholder=" Name/Email" accesskey="q" class="ui-autocomplete-input" autocomplete="off">
<input type="hidden" name="hidden_location" value="1">
<input type="hidden" name="hidden_custom" value="1">
<input type="hidden" name="qfKey" value="CRMContactControllerSearch1nrj4735k2cgk8kgcos44c4800cwc800o8gk00w8so0gko004s_8998">
<input type="hidden" name="_qf_Advanced_refresh" value="Search">
</div>
</form>
<span class="sub-arrow"></span>
</a>
```
- [ ] Empty link (Finsbury Park, Aah)
```
<a accesskey="m" href="#" class="has-submenu" id="sm-17116551805997053-3" aria-haspopup="true" aria-controls="sm-17116551805997053-4" aria-expanded="false">
<i class="crm-logo-sm"></i>
<span class="sub-arrow"></span>
</a>
```
- [ ] Empty link (Finsbury Park, Aah)
```
<a href="#" class="has-submenu" id="sm-17116551805997053-5" aria-haspopup="true" aria-controls="sm-17116551805997053-6" aria-expanded="false">
Missing form label
<input type="text" id="crm-menubar-drilldown" placeholder="Find menu item...">
<span class="sub-arrow"></span>
</a>
```
- [ ] Very low contrast (Aah)
```
<button class="trigger visually-hidden focusable" type="button" aria-pressed="false">
Open configuration options
</button>
```
- [ ] Very low contrast (Finsbury Park, Aah)
```
<label class="crm-menubar-toggle-btn" for="crm-menubar-state">
<span class="crm-menu-logo"></span>
<span class="crm-menubar-toggle-btn-icon"></span>
Toggle main menu
</label>
```
- [ ] Very low contrast (Finsbury Park, Aah)
```
<div id="drupal-live-announce" class="visually-hidden" aria-live="polite" aria-busy="false">
Tray opened.
</div>
```
Simple Search (Search > Find Contacts) Errors not present above:
- [ ] Missing form label
```
<select placeholder="- any group -" multiple="multiple" class="big big crm-select2 crm-form-multiselect" name="group[]" id="group" tabindex="-1" style="display: none;">
<option value="1">
My site group 1
</option>
<option value="2">
My site group 2
</option>
</select>
```
- [ ] Empty form label (see next task for Empty link that contains this)
`<label for="s2id_autogen2" class="select2-offscreen"></label>`
- [ ] Empty link
```
<a href="#" class="has-submenu" id="sm-17116579339791917-1" aria-haspopup="true" aria-controls="sm-17116579339791917-2" aria-expanded="false">
<form action="/civicrm/contact/search/advanced" name="search_block" method="post">
<div>
<input type="text" id="crm-qsearch-input" name="sort_name" placeholder=" Name/Email" accesskey="q" class="ui-autocomplete-input" autocomplete="off">
<input type="hidden" name="hidden_location" value="1">
<input type="hidden" name="hidden_custom" value="1">
<input type="hidden" name="qfKey" value="CRMContactControllerSearch1nrj4735k2cgk8kgcos44c4800cwc800o8gk00w8so0gko004s_4570">
<input type="hidden" name="_qf_Advanced_refresh" value="Search">
</div>
</form>
<span class="sub-arrow"></span>
</a>
```
- [ ] Empty link
```
<a accesskey="m" href="#" class="has-submenu" id="sm-17116579339791917-3" aria-haspopup="true" aria-controls="sm-17116579339791917-4" aria-expanded="false">
<i class="crm-logo-sm"></i>
<span class="sub-arrow"></span>
</a>
```
- [ ] Empty link
```
<a href="#" class="has-submenu" id="sm-17116579339791917-5" aria-haspopup="true" aria-controls="sm-17116579339791917-6" aria-expanded="false">
<input type="text" id="crm-menubar-drilldown" placeholder="Find menu item...">
<span class="sub-arrow"></span>
</a>
```
- [ ] Very low contrast
```
<span class="select2-chosen" id="select2-chosen-1">
- any contact type -
</span>
```
- [ ] Very low contrast
```
<button class="crm-form-submit default validate crm-button crm-button-type-refresh crm-button_qf_Basic_refresh" value="1" type="submit" name="_qf_Basic_refresh" id="_qf_Basic_refresh-bottom">
<i aria-hidden="true" class="crm-i fa-check"></i>
Search
</button>
```Monish DebMonish Deb2024-03-29https://lab.civicrm.org/dev/core/-/issues/5114Managed domain-aware entities with multisite configuration2024-03-28T12:37:16ZJKingsnorthManaged domain-aware entities with multisite configurationWe've come across an edge-case in a multi-site setup.
In our setup, we have a master domain which does not have 'Enable Multi Site Configuration' enabled. And subdomains which do.
This is allowed configuration according to the docs: ht...We've come across an edge-case in a multi-site setup.
In our setup, we have a master domain which does not have 'Enable Multi Site Configuration' enabled. And subdomains which do.
This is allowed configuration according to the docs: https://docs.civicrm.org/installation/en/latest/multisite/drupal/#:~:text=It%20is%20not,or%20website%20administrators.
We also have a managed 'job' entity (provided by https://lab.civicrm.org/extensions/mjwshared/-/blob/master/managed/ProcessPaymentprocessorWebhooks.mgd.php?ref_type=heads)
The managed entity is set to 'always' update.
---
1) We run Managed->Reconcile on domain ID 1 (multisite not enabled)
- The job row is created
- An entry in civicrm_managed is created
```
# id, module, name, entity_type, entity_id, cleanup, entity_modified_date
'1796', 'mjwshared', 'ProcessPaymentProcessorWebhooks', 'Job', '116', 'always', NULL
```
- The job in civicrm_job is created
```
# id, domain_id, run_frequency, last_run, scheduled_run_date, name, description, api_entity, api_action, parameters, is_active
'116', '1', 'Always', NULL, NULL, 'Process PaymentProcessor Webhooks', 'Process incomplete payment processor webhooks', 'Job', 'process_paymentprocessor_webhooks', 'delete_old=-3 month', '1'
```
2) Managed->Reconcile run on domain ID 43 (multisite enabled)
- The entries in civicrm_managed are converted into 'domain-aware' entries:
```
# id, module, name, entity_type, entity_id, cleanup, entity_modified_date
'1803', 'mjwshared', 'ProcessPaymentProcessorWebhooks_32', 'Job', '116', 'always', NULL
'1804', 'mjwshared', 'ProcessPaymentProcessorWebhooks_42', 'Job', '116', 'always', NULL
'1805', 'mjwshared', 'ProcessPaymentProcessorWebhooks_43', 'Job', '116', 'always', NULL
```
- The job in civicrm_job is 'moved' to another domain:
```
# id, domain_id, run_frequency, last_run, scheduled_run_date, name, description, api_entity, api_action, parameters, is_active
'116', '43', 'Always', NULL, NULL, 'Process PaymentProcessor Webhooks', 'Process incomplete payment processor webhooks', 'Job', 'process_paymentprocessor_webhooks', 'delete_old=-3 month', '1'
```
3) Managed->Reconcile run on domain ID 1 again (not multisite enabled)
- The entry in civicrm_job has been deleted - no more essential scheduled job!
- The entry in civicrm_managed changes back to not domain aware, and references a deleted row
```
# id, module, name, entity_type, entity_id, cleanup, entity_modified_date
'1796', 'mjwshared', 'ProcessPaymentProcessorWebhooks', 'Job', '116', 'always', NULL
```
---
So we need to either:
- Update the docs to say that the 'master' domain _does_ need to be multisite aware
- Update the handling of domain-aware managed entities to work correctly when reconciled in either domainhttps://lab.civicrm.org/dev/core/-/issues/5113Change Start Date link broken on open case activity edit2024-03-28T00:59:58ZDaveDChange Start Date link broken on open case activity editThere's a warning Undefined array key "changeStartURL" and clicking the link just reloads the page.There's a warning Undefined array key "changeStartURL" and clicking the link just reloads the page.https://lab.civicrm.org/dev/core/-/issues/5112Blank custom fields accordion appears on Find XXX search forms2024-03-28T15:06:49ZDaveDBlank custom fields accordion appears on Find XXX search formse.g. Find Activities, Find Cases. An accordion appears, but there's nothing in it. I don't think it ever used to appear. Started maybe in 5.72?e.g. Find Activities, Find Cases. An accordion appears, but there's nothing in it. I don't think it ever used to appear. Started maybe in 5.72?5.72.0https://lab.civicrm.org/dev/core/-/issues/5111PHP8.1 Deprecated function: fseek():2024-03-26T21:44:23ZbobisHDPHP8.1 Deprecated function: fseek():Overview
----------------------------------------
On php8.1 the below error will appear:
```Deprecated function: fseek(): Passing null to parameter #2 ($offset) of type int is deprecated in FileReader->seekto() (line 125 of /opt/bitnam...Overview
----------------------------------------
On php8.1 the below error will appear:
```Deprecated function: fseek(): Passing null to parameter #2 ($offset) of type int is deprecated in FileReader->seekto() (line 125 of /opt/bitnami/apps/civicrm/htdocs/sites/all/modules/civicrm/packages/PHPgettext/streams.php)```
The code in this file that causes the error is:
```php
function seekto($pos) {
fseek($this->_fd, $pos);
$this->_pos = ftell($this->_fd);
return $this->_pos;
}
```
After changing this to
```php
function seekto($pos) {
fseek($this->_fd, $this->_pos);
$this->_pos = ftell($this->_fd);
return $this->_pos;
}
```
It seems to make the error go away.
If you have already posted on:
- https://civicrm.stackexchange.com
- https://chat.civicrm.org/civicrm/pl/yfx7e3un4f8nifxq1iknj5amjw
Environment information
----------------------------------------
* __Browser:__ Firefox
* __CiviCRM:__ 5.71.0
* __PHP:__ 8.1
* __CMS:__ Drupal 7.100
* __Database:__ MariaDB 10.6.16
* __Web Server:__ Apache/2.4.52https://lab.civicrm.org/dev/core/-/issues/5110afform: Display option "Remember Filters" not keeping value2024-03-25T15:01:10Zjensschuppeafform: Display option "Remember Filters" not keeping value## Overview
The display option "Remember Filters" in search displays does not retain its value when the configuration form is being reloaded.
## Reproduction steps
1. Create a _SearchKit_ search with a search form
2. Add a form displa...## Overview
The display option "Remember Filters" in search displays does not retain its value when the configuration form is being reloaded.
## Reproduction steps
1. Create a _SearchKit_ search with a search form
2. Add a form display (e.g. _Table_)
3. add some exposed filters
4. Check _Remember Filters_
5. Reload the configuration form for that form display
## Current behaviour
The option seems to be stored and filter values are being stored per user. The option field (checkbox) however is not set when reloading the config form of the form display. Saving the config form without changing that option still seems to retain its value (still storing filter values). So the config form does not reflect the actual option value.
## Expected behaviour
The option should be set when re-visiting the form display config form. Saving the form should respect the value (unchecked: unset the option).
## Environment information
* **Browser:** _Chromium 123.0.6312.58_
* **CiviCRM:** _5.71.0_https://lab.civicrm.org/dev/core/-/issues/5109Smarty 3 causes crash if exception thrown, e.g. by crmAPI2024-03-22T15:10:45ZRichSmarty 3 causes crash if exception thrown, e.g. by crmAPIOverview
----------------------------------------
I think this is a general problem that could occur if a smarty function throws an exception. The page crashes with:
> undefined extension class 'Smarty_Internal_Method_Trigger_Error'
[...Overview
----------------------------------------
I think this is a general problem that could occur if a smarty function throws an exception. The page crashes with:
> undefined extension class 'Smarty_Internal_Method_Trigger_Error'
[chat mention](https://chat.civicrm.org/civicrm/pl/gnqn1rihnprc7er1fcssqd1j6r)
Reproduction steps
----------------------------------------
I edited EventInfo.tpl to put this in:
```
{crmAPI var='local_date_time' entity='Event' action='getvalue' return="custom_115" id=$event.id}
```
Note that I had a custom_115 field defined for all events, but this event did not have a value for that field.
Visit the page that uses that template.
Crash.
Environment information
----------------------------------------
* __CiviCRM:__ 5.70 - 5.71.1
* __PHP:__ 8.1
* __CMS:__ D7
Comments
----------------------------------------
I'm not sure, but from memory api3 getvalue has changed; it now gives an *error* saying:
> "error_message": "field custom_115 unset or not existing"
I'm sure before it just used to return nothing.
Or it could be that before Smarty 3, it was happy to treat nothing as '' and now it's more picky.
I think the main problem seems to be that the exception/error handling is broken in Smarty3. Obviously if there's a bug in the template, it's going not to work, but it oughtn't crash the whole page.
The code that throws the error that causes the crash is CRM/Core/Smarty/plugins/function.crmAPI.php L35:
$smarty->trigger_error('{crmAPI} ' . $e->getMessage());https://lab.civicrm.org/dev/core/-/issues/5108Inconsistent handling of tag name and tag label2024-03-23T14:15:54ZDetlev SieberInconsistent handling of tag name and tag label## Overview
When you change a tag in the tag tree, only the label is changed, the name remains the old entry. So after changing and reloading, in the tag tree the old entry is still shown - despite the previous change.
In the contact s...## Overview
When you change a tag in the tag tree, only the label is changed, the name remains the old entry. So after changing and reloading, in the tag tree the old entry is still shown - despite the previous change.
In the contact summary, the change is not reflected: Because there, the tag name is used, not the tag label. Which also seems, hmm..., interesting...
## Reproduction steps
1. Tag a contact with a specific tag from the tag tree
2. Click on **Contacts -\> Manage Tags**
3. Rename the previously selected tag
4. Reload the tag list -\> again, the old label/name is shown
5. Reload the contact from step 1.: -\> again, the old label/name is shown
## Current behaviour
Renaming the tag in the tag tree only changes the field civicrm_tag.label, not the field civicrm\_tag.name.
This "might" be what we want - however, on several occasions, the tag name is used instead of the tag name.
## Expected behaviour
I would recommend, that both name and label should be changed.
## Environment information
* **CiviCRM:** 5.69.5https://lab.civicrm.org/dev/core/-/issues/5107Premiums configuration gives a 500 error2024-03-28T20:00:10ZJonGoldPremiums configuration gives a 500 errorOverview
----------------------------------------
In "Manage Contribution Pages", clicking on the "Premiums" page gives a 500 error. This happens in 5.71 and master, not in 5.70.
Reproduction steps
-------------------------------------...Overview
----------------------------------------
In "Manage Contribution Pages", clicking on the "Premiums" page gives a 500 error. This happens in 5.71 and master, not in 5.70.
Reproduction steps
----------------------------------------
See above.
Comments
----------------------------------------
This seems Smarty-related. I tried a `git bisect` but there's a different issue that breaks this page that makes that difficult. However, below is the error and backtrace I get when I set XDebug to pause on error:
```
"Type of SmartyCompilerException:: must be int (as in class Exception)"
include (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smartycompilerexception.php:8)
Composer\Autoload\{closure:/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/vendor/composer/ClassLoader.php:575-577} (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/vendor/composer/ClassLoader.php:576)
Composer\Autoload\ClassLoader->loadClass (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/vendor/composer/ClassLoader.php:427)
Smarty_Internal_TemplateCompilerBase->trigger_template_error (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php:1153)
Smarty_Internal_CompileBase->closeTag (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_compilebase.php:196)
Smarty_Internal_Compile_Private_Block_Plugin->compile (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_private_block_plugin.php:77)
Smarty_Internal_TemplateCompilerBase->callTagCompiler (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php:768)
Smarty_Internal_TemplateCompilerBase->compileTag2 (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php:1722)
Smarty_Internal_TemplateCompilerBase->compileTag (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php:565)
Smarty_Internal_Templateparser->yy_r45 (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templateparser.php:2559)
Smarty_Internal_Templateparser->yy_reduce (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templateparser.php:3481)
Smarty_Internal_Templateparser->doParse (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templateparser.php:3573)
Smarty_Internal_SmartyTemplateCompiler->doCompile (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_smartytemplatecompiler.php:128)
Smarty_Internal_TemplateCompilerBase->compileTemplateSource (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php:481)
Smarty_Internal_TemplateCompilerBase->compileTemplate (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php:402)
Smarty_Template_Compiled->compileTemplateSource (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_template_compiled.php:184)
Smarty_Template_Compiled->process (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_template_compiled.php:141)
Smarty_Template_Compiled->render (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_template_compiled.php:105)
Smarty_Internal_Template->render (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_template.php:216)
Smarty_Internal_Template->_subTemplateRender (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_template.php:385)
content_65fa056d841377_41904664 (/home/jon/local/civicrm-buildkit/app/private/dmaster/default/civicrm/templates_c/en_US/3f/b3/c1/3fb3c10824e8bcce0275790f5b54d852eeb8a4d7_0.file.default.tpl.php:53)
Smarty_Template_Resource_Base->getRenderedTemplateCode (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_template_resource_base.php:123)
Smarty_Template_Compiled->render (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_template_compiled.php:114)
Smarty_Internal_Template->render (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_template.php:216)
Smarty_Internal_Template->_subTemplateRender (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_template.php:385)
content_65fc658f02ae61_03133634 (/home/jon/local/civicrm-buildkit/app/private/dmaster/default/civicrm/templates_c/en_US/7e/52/3d/7e523d898add0d1ddbfb9d731ea772b38ca3b855_0.file.snippet.tpl.php:73)
Smarty_Template_Resource_Base->getRenderedTemplateCode (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_template_resource_base.php:123)
Smarty_Template_Compiled->render (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_template_compiled.php:114)
Smarty_Internal_Template->render (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_template.php:216)
Smarty_Internal_TemplateBase->_execute (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatebase.php:232)
Smarty_Internal_TemplateBase->fetch (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatebase.php:116)
CRM_Core_QuickForm_Action_Display->renderForm (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/CRM/Core/QuickForm/Action/Display.php:117)
CRM_Core_QuickForm_Action_Display->perform (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/CRM/Core/QuickForm/Action/Display.php:83)
HTML_QuickForm_Controller->handle (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/HTML/QuickForm/Controller.php:203)
HTML_QuickForm_Page->handle (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/packages/HTML/QuickForm/Page.php:103)
CRM_Core_Controller->run (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/CRM/Core/Controller.php:355)
CRM_Utils_Wrapper->run (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/CRM/Utils/Wrapper.php:98)
CRM_Core_Invoke::runItem (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/CRM/Core/Invoke.php:298)
CRM_Core_Invoke::_invoke (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/CRM/Core/Invoke.php:69)
CRM_Core_Invoke::invoke (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/CRM/Core/Invoke.php:36)
civicrm_invoke (/home/jon/local/civicrm-buildkit/build/dmaster/web/sites/all/modules/civicrm/drupal/civicrm.module:471)
menu_execute_active_handler (/home/jon/local/civicrm-buildkit/build/dmaster/web/includes/menu.inc:527)
{main} (/home/jon/local/civicrm-buildkit/build/dmaster/web/index.php:21)https://lab.civicrm.org/dev/core/-/issues/5106Admin UI extension breaks contact summary if CiviMember extension is disabled2024-03-27T15:25:42ZKurund JalmiAdmin UI extension breaks contact summary if CiviMember extension is disabledContact summary results in fatal error if Admin UI extension is enabled and CiviMember extension is disabled.
```bash
Civi\API\Exception\NotImplementedException: API (Membership, get) does not exist (or the extension it belongs to is no...Contact summary results in fatal error if Admin UI extension is enabled and CiviMember extension is disabled.
```bash
Civi\API\Exception\NotImplementedException: API (Membership, get) does not exist (or the extension it belongs to is not enabled). in Civi\API\Request::create() (line 51 of /var/www/html/sites/all/modules/civicrm/Civi/API/Request.php).
```https://lab.civicrm.org/dev/core/-/issues/5105Extend FormBuilder conditional logic2024-03-27T12:31:45ZGuillaumeSorelExtend FormBuilder conditional logicI think the visibility condition could be improved with these new functions.
- allow to set if logic applies to show or hide element (until now it's a show per default, but it's useful to be able to hide some elements according to other ...I think the visibility condition could be improved with these new functions.
- allow to set if logic applies to show or hide element (until now it's a show per default, but it's useful to be able to hide some elements according to other values) a simple toggle or radio for `o show if | o hide if`
- add the maximum of options for the validity controls in the drodpwon like in SearchKit: contains, is empty/not empty, is between, regex... and not only maths operatorscolemanwcolemanwhttps://lab.civicrm.org/dev/core/-/issues/5104Formbuilder: when updating a relationship or an individual, a default value s...2024-03-27T20:10:34ZNadaillacFormbuilder: when updating a relationship or an individual, a default value set to "now" in a field (custom or not) does not appearOverview
----------------------------------------
Reproduction steps on Wpmaster
----------------------------------------
Create a form with
- individual1 (update, and URL) with fields name, marriage date (with default value set to now...Overview
----------------------------------------
Reproduction steps on Wpmaster
----------------------------------------
Create a form with
- individual1 (update, and URL) with fields name, marriage date (with default value set to now)
- relationship1 (update, and URL) with field relationship end date (with default value set to now)
![Civi_bug_2](/uploads/c274601cbe1e98140982c36d809fffe5/Civi_bug_2.png)
![Civi_bug_3](/uploads/3e926e8907b49c9c559123cf4bb04f6d/Civi_bug_3.png)
Create a relationship for example Employee (Julian Bachman=36) Employer (Bay ...). Let us say that the relationshipid=218
Call the form #?Individual1=36&Relationship1=218
Results
- The information (Name first name) are retrieved,
- Marriage date and relationship end date ("now" date) appears less that 1 second and then are left blank
![Civi_bug_1](/uploads/d050063465cd95d255ce402664ea11e9/Civi_bug_1.png)
This behavior appears only if the relationship (or individual) exists (it is an update). In case of creation, the "now" information is OK
Environment information
----------------------------------------
Wpmaster and also 5.70
Comments
----------------------------------------
I m ok to fund the fix:-). I need it for a client.colemanwcolemanwhttps://lab.civicrm.org/dev/core/-/issues/5103Saving checkbox custom fields via APIv4 fails for custom/dynamic entities2024-03-22T03:13:00ZjensschuppeSaving checkbox custom fields via APIv4 fails for custom/dynamic entities## Steps to reproduce
* For a custom/dynamic entity type (e.g. using the [_Entity Construction Kit_](https://github.com/systopia/de.systopia.eck)), add a custom field with HTML type `CheckBox`
* Try to create/save an entity with that fi...## Steps to reproduce
* For a custom/dynamic entity type (e.g. using the [_Entity Construction Kit_](https://github.com/systopia/de.systopia.eck)), add a custom field with HTML type `CheckBox`
* Try to create/save an entity with that field with APIv4, e.g. using the _ECK_ Afform forms (whether the field has a value is irrelevant)
## Expected behavior
Entity saved, field has selected (or no) value
## Actual behavior
Entity not saving, error is `Error: Class name must be a valid object or a string in civicrm_api3_generic_getoptions() (line 442 of /path/to/civicrm/civicrm-core/api/v3/Generic.php).`
## Technical details
* `DAOActionTrait` calls the global (APIv3) function `formatCheckBoxField()` for fields with an HTML type of `CheckBox` [here](https://github.com/civicrm/civicrm-core/blob/018741e09162a29f34a01d04141e3f96ddcade19/Civi/Api4/Generic/Traits/DAOActionTrait.php#L260-L263)
* That function calls APIv3 `getoptions` with the given entity (`Eck_*`)
* APIv3 "normalizes" entity names, stripping the `_` which results in the APIv3 entity being `Eck*`
* Resolving the entity to a DAO class fails at the latest in `_civicrm_api3_get_DAO()` due to the "normalized" entity name
* Finally, when calling `$dao::buildOptions()` on `null`, the error occurs
## Proposed solution
As commented in `DAOActionTrait` for the call of `formatCheckBoxField()`: `this function should be part of a class` - and re-implemented using APIv4 `getFields` with `loadOptions=TRUE` for the given `custom_field_id`.https://lab.civicrm.org/dev/core/-/issues/5102Allow access to API params from Api4Query2024-03-20T13:55:38ZMichael McAndrewAllow access to API params from Api4QueryContext:
* I am adding an 'extra' calculated field to a spec provider for a custom entity.
* The value of this extra calculated field depends on a parameter passed to the get action.
* I have access to the query in the setSqlRenderer me...Context:
* I am adding an 'extra' calculated field to a spec provider for a custom entity.
* The value of this extra calculated field depends on a parameter passed to the get action.
* I have access to the query in the setSqlRenderer method (which contains a _protected_ API object) but there doesn't appear to be a way to access the API parameters.
Adding the following method to Api4Query allows read only access to API params and seems inline with other methods like `getSelect()`, but feel free to let me know if I am doing it wrong and there is a better approach.
```php
/**
* @return mixed
*/
public function getParam(string $param) {
return call_user_func([$this->api, 'get'.ucfirst($param)]);
}
```
PR coming up...https://lab.civicrm.org/dev/core/-/issues/5101Search Builder: Contact not in Tag don't takes contacts without tags into acc...2024-03-19T20:35:27ZglanzelSearch Builder: Contact not in Tag don't takes contacts without tags into accountOverview
----------------------------------------
In Search Generator When searching for not in Tag(s) it don't takes contacts without tags into account.
Reproduction steps
----------------------------------------
Click Search -> Sear...Overview
----------------------------------------
In Search Generator When searching for not in Tag(s) it don't takes contacts without tags into account.
Reproduction steps
----------------------------------------
Click Search -> Search Builder
and there choose
Contact -> Tags -> not in -> TagX.
as Search parameter.
Current behaviour
----------------------------------------
Only Persons with minimum one Tag but without TagX gets displayed.
Expected behaviour
----------------------------------------
Any Contact with Tags other than TagX **and** all Contacts without any Tag should be displayed.
Environment information
----------------------------------------
* CiviCRM:CiviCRM 5.73.alpha1
Comments
----------------------------------------https://lab.civicrm.org/dev/core/-/issues/5100Payment appears as 123 units of $1 rather than one unit of $123 if using othe...2024-03-22T14:38:36ZwmortadaPayment appears as 123 units of $1 rather than one unit of $123 if using other amount fieldOverview
----------------------------------------
This appears to be a regression in CiviCRM 5.69 upwards. If you create a contribution pages that allows other amounts the amount in that field is recorded in the quantity field of the li...Overview
----------------------------------------
This appears to be a regression in CiviCRM 5.69 upwards. If you create a contribution pages that allows other amounts the amount in that field is recorded in the quantity field of the line item rather than the unit price.
It looks like the quantity and the unit price have been swapped.
Reproduction steps
----------------------------------------
1. Create a contribution page with the other amounts section enabled
2. Visit the contribution page and type an amount in 'Other amount' field
3. View the contact record - note that the quantity is the amount and the unit price is 1.00
![image](/uploads/c16ed4be20e97bb2f86d63d5842d481e/image.png)
![image](/uploads/2e27e1f53dfca423a63ef4d98a5f0042/image.png)
![image](/uploads/85840162f1fc088ddcd6de5c7565ea5d/image.png)
Current behaviour
----------------------------------------
The amount is recorded in the quantity field. The unit price is $1.00.
Expected behaviour
----------------------------------------
The quantity is 1. The amount is recorded in the unit price field.
Environment information
----------------------------------------
Tested in CiviCRM 5.69, 5.70 and 5.73alpha1 (current dmaster). It is an issue in all three versions.
I'm not sure when this stopped working, but think it is quite recent.5.71.2https://lab.civicrm.org/dev/core/-/issues/5099SearchKit UX: Rename the query tabs2024-03-18T18:23:24ZJonGoldSearchKit UX: Rename the query tabsWhen I saw the new tabbed interface for SK queries, I meant to submit a UX note. Today, one of my savvier clients was tripped up by the tab labels, which reminded me to come back.
Their particular error - they tried to add new columns ...When I saw the new tabbed interface for SK queries, I meant to submit a UX note. Today, one of my savvier clients was tripped up by the tab labels, which reminded me to come back.
Their particular error - they tried to add new columns with the "Select Fields" tab.
* We should relabel that - I like "Field Transformations", but that conflicts with the rewrite on displays. Bikeshedding welcome, but this is better in than out.
* "Query Info" is ambiguous - I recommend "Debugging" or "Developer Info".
* "Configure Settings" is also ambiguous but I struggle for something better. This is query metadata, but I don't know a good non-technical term to unambiguously communicate that. The best I have is "Save Options" but most people would read "Save" as a verb, not a noun.
* You can select fields under the "Select Fields" tab that aren't a column in the search, which leads to a crash on save. Is there a valid case for that? If not, we should limit the list. But that probably should be its own issue.https://lab.civicrm.org/dev/core/-/issues/5098Make all price fields visible on Event Info page2024-03-18T11:12:03ZyashodhaMake all price fields visible on Event Info pageToday, on the event info page, anonymous users (public) don't see the member price but admin does based on visibility.
In the extension, the field Visibility limits the display of the price optionnot only on the event registration page b...Today, on the event info page, anonymous users (public) don't see the member price but admin does based on visibility.
In the extension, the field Visibility limits the display of the price optionnot only on the event registration page but also on the event info page.
The limitation should not be applied to the event info page but only to the event registration page.
On the event info page, anyone should see all the price options.
The restriction to members should be only on event registration page. Since this is a display only page, it gives the user incentive to login if they want to avail the price configured for not just for public.https://lab.civicrm.org/dev/core/-/issues/5097Can't set Outbound Mail to use SMTP without a fatal error2024-03-17T08:26:35ZUpperholmeCan't set Outbound Mail to use SMTP without a fatal errorUsing CiviCRM 5.70.1 I want to set up Outbound Mail to send via SMTP. I provide the relevant details and login credentials via the form that would let me send via the mail account that I've set up expressly for this purpose. On testing -...Using CiviCRM 5.70.1 I want to set up Outbound Mail to send via SMTP. I provide the relevant details and login credentials via the form that would let me send via the mail account that I've set up expressly for this purpose. On testing - using the 'Save and send a test' functionality I would expect to see a positive response, along with an email, or an on-screen error message to indicate that the details entered were in some way inaccurate.
However all I get is a fatal error. The log reports this as:
```
Got error 'PHP message: PHP Warning: Undefined property: CRM_Admin_Form_Setting_Smtp::$_id in /home/rp/sites/live/wp-content/plugins/civicrm/civicrm/CRM/Core/Form.php on line 2123
PHP message: PHP Warning: Undefined property: CRM_Admin_Form_Setting_Smtp::$_id in /wp-content/plugins/civicrm/civicrm/CRM/Core/Form.php on line 2123
PHP message: PHP Warning: Undefined property: CRM_Admin_Form_Setting_Smtp::$_id in /wp-content/plugins/civicrm/civicrm/CRM/Core/Form.php on line 2123
PHP message: PHP Warning: Undefined property: CRM_Admin_Form_Setting_Smtp::$_id in /wp-content/plugins/civicrm/civicrm/CRM/Core/Form.php on line 2123
PHP message: PHP Warning: Undefined property: CRM_Admin_Form_Setting_Smtp::$_id in /wp-content/plugins/civicrm/civicrm/CRM/Core/Form.php on line 2123
PHP message: PHP Fatal error: Uncaught Error: Call to undefined function fsockopen() in /wp-content/plugins/civicrm/civicrm/vendor/pear/net_socket/Net/Socket.php:165
```
I tried various settings options, but it didn't matter what I entered into the settings form, I got the same result.
I asked a question about this on StackExchange: https://civicrm.stackexchange.com/questions/47564/what-values-are-required-in-order-to-send-outbound-mail-via-smtp
Seeing that version 5.71 included significant changes to CiviMail, I upgraded my development site and retested. Same result:
```
PHP Warning: Undefined property: CRM_Admin_Form_Setting_Smtp::$_id in /home/rpdev/sites/dev/wp-content/plugins/civicrm/civicrm/CRM/Core/Form.php on line 2140;
PHP Warning: Undefined property: CRM_Admin_Form_Setting_Smtp::$_id in /home/rpdev/sites/dev/wp-content/plugins/civicrm/civicrm/CRM/Core/Form.php on line 2140;
PHP Warning: Undefined property: CRM_Admin_Form_Setting_Smtp::$_id in /home/rpdev/sites/dev/wp-content/plugins/civicrm/civicrm/CRM/Core/Form.php on line 2140;
PHP Warning: Undefined property: CRM_Admin_Form_Setting_Smtp::$_id in /home/rpdev/sites/dev/wp-content/plugins/civicrm/civicrm/CRM/Core/Form.php on line 2140;
PHP Warning: Undefined property: CRM_Admin_Form_Setting_Smtp::$_id in /home/rpdev/sites/dev/wp-content/plugins/civicrm/civicrm/CRM/Core/Form.php on line 2140;
PHP Fatal error: Uncaught Error: Call to undefined function fsockopen() in /home/rpdev/sites/dev/wp-content/plugins/civicrm/civicrm/vendor/pear/net_socket/Net/Socket.php:165
```
Stack trace:
```
#0 /home/rpdev/sites/dev/wp-content/plugins/civicrm/civicrm/vendor/pear/net_smtp/Net/SMTP.php(451): Net_Socket->connect()
#1 /home/rpdev/sites/dev/wp-content/plugins/civicrm/civicrm/vendor/pear/mail/Mail/smtp.php(449): Net_SMTP->connect()
#2 /home/rpdev/sites/dev/wp-content/plugins/civicrm/civicrm/vendor/pear/mail/Mail/smtp.php(332): Mail_smtp->getSMTPObject()
#3 /home/rpdev/sites/dev/wp-content/plugins/civicrm/civicrm/vendor/pear/mail/Mail/smtp.php(319): Mail_smtp->send_or_fail()
#4 /home/rpdev/sites/dev/wp-content/plugins/civicrm/civicrm/CRM/Utils/Mail/FilteredPearMailer.php(77): Mail_smtp->send()
#5 /home/rpdev/sites/dev/wp-content/plugins/civicrm/civicrm/CRM/Admin/Form/Setting/Smtp.php(185): CRM_Utils_Mail_FilteredPearMailer->send()
#6 /home/rpdev/sites/dev/wp-content/plugins/civicrm/civicrm/CRM/...', referer: https://mysite.com/wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fadmin%2Fsetting%2Fsmtp&_qf_Smtp_display=true
```