CiviCRM Core issues
https://lab.civicrm.org/dev/core/-/issues
2024-02-28T12:49:12Z
https://lab.civicrm.org/dev/core/-/issues/5034
Schedule Reminders task for Events fail to complete when Event tokens used in...
2024-02-28T12:49:12Z
marcusjwilson
Schedule Reminders task for Events fail to complete when Event tokens used in combination with "Also include" Contacts
Overview
----------------------------------------
When Scheduled Reminders are set up for an Event in CiviCRM, and the content of that email includes Tokens relating to the Event (Event Title, Start Date, etc.) AND the user includes addi...
Overview
----------------------------------------
When Scheduled Reminders are set up for an Event in CiviCRM, and the content of that email includes Tokens relating to the Event (Event Title, Start Date, etc.) AND the user includes additional Contacts to include in the Scheduled Reminder (in the "Also include" field), this breaks the Scheduled Reminder scheduled task, and it fails to complete.
Reproduction steps
----------------------------------------
1. From an event, set up a Scheduled Reminder to send based on the Event, i.e. 24 hours before the Start Date
2. In the body content of the Scheduled Reminder email, include one or more Tokens related to the Event (Event Title, Event Start Date)
3. In the "Limit or Add Recipients" field for the Scheduled Reminder "Also include" a Contact who is NOT registered as a Participant for the given event
Current behaviour
----------------------------------------
When the scenario above is in place, Scheduled Reminder task trigger by the CiviCRM Cron starts to fail and not complete.
Expected behaviour
----------------------------------------
Scheduled Reminder tasks should continue to run, complete and include the additional Contacts in the Reminder email as well as the Event Participants.
Environment information
----------------------------------------
* __CiviCRM:__ 5.64.4
* __PHP:__ _7.4/8.0__
* __CMS:__ _WordPress 6.4.3_
Comments
----------------------------------------
Tested and reproduced on production site and on a clean Civi+WP site using CiviBuild in test CiviCRM site.
https://lab.civicrm.org/dev/core/-/issues/5033
Fatal error visiting event registration page with a disabled pricefield
2024-02-28T17:30:52Z
magnolia61
Fatal error visiting event registration page with a disabled pricefield
Overview
----------------------------------------
Opening a registration page with a priceset with one of the pricefields disabled results in a fatal error.
TypeError: Argument 1 passed to CRM_Event_Form_Registration::getUsedSeatsCount(...
Overview
----------------------------------------
Opening a registration page with a priceset with one of the pricefields disabled results in a fatal error.
TypeError: Argument 1 passed to CRM_Event_Form_Registration::getUsedSeatsCount() must be of the type int, null given, called in /var/www/vhosts/xyz/web/sites/all/modules/civicrm/CRM/Event/Form/Registration.php on line 956 in CRM_Event_Form_Registration->getUsedSeatsCount() (line 1040 of /var/www/vhosts/xyz/web/sites/all/modules/civicrm/CRM/Event/Form/Registration.php).
The problem for us is somewhere in the function isOptionFullID.
Something in our priceset does not resolve to valid value for $optId = $option['id'];
when from IsOptionFullID the function getUsedSeatsCount is called it results in an error because it expects an int value for priceFieldValueID
protected function getUsedSeatsCount(int $priceFieldValueID) : int {
Reproduction steps
----------------------------------------
1. An event has a priceset with one of the pricefields disabled
2. Opening the registration page results in a fatal error
Current behaviour
----------------------------------------
![image](/uploads/041bb8c19666fc3f99c3f5bec78606bb/image.png)
![image](/uploads/2ff1b9c96e300515694d0a6930409328/image.png)
Expected behaviour
----------------------------------------
The registration page would show, with the pricefield disabled
Environment information
----------------------------------------
Current master / sandbox
Comments
----------------------------------------
My limited detective and coding skills enable me to reach this far, I have no clue on where to search further and what piece of code is the root cause of this.
5.71.0
https://lab.civicrm.org/dev/core/-/issues/5031
Standalone - multi-lingual fatals when accessing OptionValues
2024-03-06T15:18:42Z
ufundo
Standalone - multi-lingual fatals when accessing OptionValues
@bgm :
> if we enable multi-lingual (tested on 5.72/master), it fatals because it tries to access Option Values before i18n dbLocale seems to have been set (i.e. I see it querying civicrm_option_value and not civicrm_option_value_en_US)...
@bgm :
> if we enable multi-lingual (tested on 5.72/master), it fatals because it tries to access Option Values before i18n dbLocale seems to have been set (i.e. I see it querying civicrm_option_value and not civicrm_option_value_en_US).
> It happens immediately after enabling multi-lingual: ex: https://smaster.demo.civicrm.org/civicrm/admin/setting/localization?reset=1
>
> Go to Administer > Localization > Translation. Enable multi-lingual, fatals.
>
> I haven't dug into it, but part of me would be pretty happy to deprecate multi-lingual mode, and not support it in Standalone. I do use it, but there are other ways we could support config translation.
https://lab.civicrm.org/dev/core/-/issues/5028
Add CKEditor/WYSIWYG to the Event Confirmation Email Text Field
2024-02-28T12:47:28Z
pbarmak
Add CKEditor/WYSIWYG to the Event Confirmation Email Text Field
Per a discussion with Eileen, it would be great to finally get the Confirmation Email Text field of Event Online Registrations to use CKEditor. That will allow admins to create much nicer confirmation emails (with embedded graphics and b...
Per a discussion with Eileen, it would be great to finally get the Confirmation Email Text field of Event Online Registrations to use CKEditor. That will allow admins to create much nicer confirmation emails (with embedded graphics and branding) without the need to learn HTML. Given the Registration Screen Introductory Text and Thank-you Screen text both have this option, it seems like a good idea to also have it for the confirmation email.
https://lab.civicrm.org/dev/core/-/issues/5027
Event Confirmation Email Text Token Should be Set as text/html
2024-02-28T12:46:59Z
pbarmak
Event Confirmation Email Text Token Should be Set as text/html
Per a chat with Eileen and Seamus, adding a ticket here. The Event confirmation email text is currently not rendering any input HTML tags. It seems this is because the token is not set as "text/html".
Seamus recommended changing https:/...
Per a chat with Eileen and Seamus, adding a ticket here. The Event confirmation email text is currently not rendering any input HTML tags. It seems this is because the token is not set as "text/html".
Seamus recommended changing https://github.com/civicrm/civicrm-core/blob/master/CRM/Event/Tokens.php#L239 from this:
```
else {
$tokens[$fieldName]['text/plain'] = $event[$fieldName];
}
```
to this:
```
else {
$type = ($fieldName === 'confirm_email_text' ? 'text/html' : 'text/plain');
$tokens[$fieldName][$type] = $event[$fieldName];
}
```
For my testing, I just added this line around line 227:
`$tokens['confirm_email_text']['text/html'] = $event['confirm_email_text'];`
Either of those seem to solve the issue, converting the value of that field to actual html code.
https://lab.civicrm.org/dev/core/-/issues/5024
FormBuilder: "edit" and "clone" broken for Core Packaged forms
2024-02-26T13:16:50Z
noah
FormBuilder: "edit" and "clone" broken for Core Packaged forms
To reproduce:
1. Go to https://dmaster.demo.civicrm.org/civicrm/admin/afform
2. On the Submission Forms tab, click "Edit" or "Clone" next to afformQuickAddIndividual or afformQuickAddOrganization.
What happens:
A blank FormBuilder con...
To reproduce:
1. Go to https://dmaster.demo.civicrm.org/civicrm/admin/afform
2. On the Submission Forms tab, click "Edit" or "Clone" next to afformQuickAddIndividual or afformQuickAddOrganization.
What happens:
A blank FormBuilder config screen appears.
What should happen:
The config & elements from the selected form should load.
colemanw
colemanw
https://lab.civicrm.org/dev/core/-/issues/5023
Add aria-label to CheckBox, Radio and EntityRef in FormBuilder
2024-02-21T17:59:01Z
JoeMurray
Add aria-label to CheckBox, Radio and EntityRef in FormBuilder
Modify
- [ ] CheckBox.html,
- [ ] Radio.html and
- [ ] EntityRef.html
in ext/afform/ang/af/fields/ to add aria-label="{{$ctrl.defn.label}} {{opt.label}}" to the input element's definition.
AGH tested these successfully with VoiceOve...
Modify
- [ ] CheckBox.html,
- [ ] Radio.html and
- [ ] EntityRef.html
in ext/afform/ang/af/fields/ to add aria-label="{{$ctrl.defn.label}} {{opt.label}}" to the input element's definition.
AGH tested these successfully with VoiceOver on Safari on a Mac.
See Accessibility notes discussion of https://chat.civicrm.org/civicrm/pl/un7ajre7mbyc3fis4qebnczpse .
JoeMurray
JoeMurray
https://lab.civicrm.org/dev/core/-/issues/5022
MailingEventSubscribe Error
2024-02-28T12:46:24Z
jmargraf
MailingEventSubscribe Error
Overview
----------------------------------------
MailingEventSubscribe does result in an error message
Reproduction steps
----------------------------------------
1. Check the ID of an existing mailing list group (eg. 60)
2. Open AP...
Overview
----------------------------------------
MailingEventSubscribe does result in an error message
Reproduction steps
----------------------------------------
1. Check the ID of an existing mailing list group (eg. 60)
2. Open API-Explorer
3. Send API-Request:
```
$result = civicrm_api3('MailingEventSubscribe', 'create', [
'group_id' => 60,
'email' => "test@example.com",
]);
```
4. Got Error Message:
```
{
"error_code": 0,
"entity": "MailingEventSubscribe",
"action": "create",
"is_error": 1,
"error_message": "Failed to find key by ID or tag (I2s19RqQP0fDuuRcyoyhUhRQiAY)"
}
```
Current behaviour
----------------------------------------
Error Message: "error_message": "Failed to find key by ID or tag (I2s19RqQP0fDuuRcyoyhUhRQiAY)"
Expected behaviour
----------------------------------------
Subscribe to Mailing-List
Environment information
----------------------------------------
<!-- Some of the items below may not be relevant for every bug - if in doubt please include more information than you think is neccessary. -->
* __Browser:__ _Firefox 59.0.1/Chrome 78.0.3904/Safari 13_
* __CiviCRM:__ 5.69.5
* __PHP:__ 8.1
* __CMS:__ Drupal 10.2.3
* __Database:__ MariaDB
* __Web Server:__ Apache
https://lab.civicrm.org/dev/core/-/issues/5020
Provide support for the Peppol standard to send invoices from CiviCRM to othe...
2024-03-18T15:29:58Z
justinfreeman (Agileware)
Provide support for the Peppol standard to send invoices from CiviCRM to other organisations
This is just a placeholder to see if there is any interest in providing support for the Peppol standard. Did some searching and couldn't find any mentions about this in Lab.
Basically, the idea is to provide support for the Peppol stand...
This is just a placeholder to see if there is any interest in providing support for the Peppol standard. Did some searching and couldn't find any mentions about this in Lab.
Basically, the idea is to provide support for the Peppol standard to send invoices from CiviCRM to other organisations. See https://peppol.org/ and participating organisations will be listed here, https://directory.peppol.eu/public
https://lab.civicrm.org/dev/core/-/issues/5017
Fatal Error with Angular Manager.php after upgrading to CiviCRM 5.69.5
2024-02-23T15:18:48Z
LKuttner
Fatal Error with Angular Manager.php after upgrading to CiviCRM 5.69.5
After upgrading to CiviCRM 5.69.5 from 5.64.4 we get a WSOD.
`Parse error: syntax error, unexpected '=' in .../modules/civicrm/Civi/Angular/Manager.php on line 98`
`Fatal error: Exception thrown without a stack frame in Unknown on line...
After upgrading to CiviCRM 5.69.5 from 5.64.4 we get a WSOD.
`Parse error: syntax error, unexpected '=' in .../modules/civicrm/Civi/Angular/Manager.php on line 98`
`Fatal error: Exception thrown without a stack frame in Unknown on line 0
`
I have not been able to identify what is causing this.
I have disabled all the non-standard CiviCRM extensions, with no change.
This is on Drupal 7.99 with PHP 7.3.33. Thank you for any help you can offer.
https://lab.civicrm.org/dev/core/-/issues/5015
'Clean-up Temporary Data and Files' doesn't empty the tplCache by default
2024-02-23T15:18:23Z
Andrew West
'Clean-up Temporary Data and Files' doesn't empty the tplCache by default
The 'Clean-up temporary data and files' scheduled job [doesn't clean the tpl directory by default](https://github.com/civicrm/civicrm-core/blob/06540d39dc2cedcadb19be5c351ef831a9133534/api/v3/Job.php#L631). Should it? We see this balloon...
The 'Clean-up temporary data and files' scheduled job [doesn't clean the tpl directory by default](https://github.com/civicrm/civicrm-core/blob/06540d39dc2cedcadb19be5c351ef831a9133534/api/v3/Job.php#L631). Should it? We see this ballooning to tens of gigabytes when sending large mailings.
Workaround is to add the parameter, but it seems like this might catch some people out.
![image](/uploads/85b4275fb08070a8995fe094e32d466e/image.png)
https://lab.civicrm.org/dev/core/-/issues/5009
SearchKit table display: some pager settings doesn't stick
2024-02-14T10:09:42Z
noah
SearchKit table display: some pager settings doesn't stick
![hidepager](/uploads/df0e16539b7cc4b283b277aa7b036fd6/hidepager.gif)
The screen recording shows that the "Adjustable Page Size" setting doesn't save. This is also true for "Hide Pager if One Page" and most if not all other pager settings.
![hidepager](/uploads/df0e16539b7cc4b283b277aa7b036fd6/hidepager.gif)
The screen recording shows that the "Adjustable Page Size" setting doesn't save. This is also true for "Hide Pager if One Page" and most if not all other pager settings.
https://lab.civicrm.org/dev/core/-/issues/5004
Wrong Contribution ID passed to TokenValueEvent and Duplicate Invoice Numbers...
2024-02-22T04:18:48Z
ginkgomzd
ginkgomzd@fastmail.com
Wrong Contribution ID passed to TokenValueEvent and Duplicate Invoice Numbers for Contributions created around same time
New description after diagnosis:
Code was setting invoice number to a predicted next ContributionID instead of waiting for the Contribution ID to be set.
----
Overview
----------------------------------------
When two contributions are ...
New description after diagnosis:
Code was setting invoice number to a predicted next ContributionID instead of waiting for the Contribution ID to be set.
----
Overview
----------------------------------------
When two contributions are made at the same time (same datetime to the second), one of the contributions is assigned a duplicate invoice_number. The invoice number is assigned based on a Contribution ID, therefore, we infer that the Contribution ID is corrected later in the request handling, but the invoice ID is not updated and is therefore a duplicate of another existing contribution.
There is no token for invoice number and we are not using the System Workflow messages that make it available as a variable in Smarty processing.
Our custom token sets it from the Contribution ID passed to TokenValueEvent. Perhaps this is a better framing of the bug over-all... the incorrect Contribution ID is passed to the TokenValueEvent. This is probably inconsequential for most cases since Contribution ID is not a likely token or token dependency.
Reproduction steps
----------------------------------------
It has been observed multiple times in our high-volume event registrations. Reproduction would require submitting simultaneous requests. This might involve some luck, but maybe an appropriately high load compared to the system configuration would trigger the condition reliably.
We are using the payflowpro payment processor extension.
Current behaviour
----------------------------------------
Two contributions, with different but sequential Contribution ID's, share the same invoice_number and are both returned in a search by invoice number.
Expected behaviour
----------------------------------------
The invoice_number should be unique and is expected to be derived from Contribution ID and invoice prefix.
https://lab.civicrm.org/dev/core/-/issues/5002
Number field input validation does not respect decimal separator (member cust...
2024-03-07T12:13:16Z
CΓ©sar
Number field input validation does not respect decimal separator (member custom field)
## Overview
Hello I think its related to: https://lab.civicrm.org/dev/core/-/issues/4941 and https://lab.civicrm.org/dev/core/-/issues/4154
## Reproduction steps
1. Under Administer > Localization > Languages, Currency, Locations, set...
## Overview
Hello I think its related to: https://lab.civicrm.org/dev/core/-/issues/4941 and https://lab.civicrm.org/dev/core/-/issues/4154
## 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 Memberships. Data type: Number. (money works)
3. Edit an existing member (or: add a new member). In the number field, enter a number that includes a comma, such as "1,5".
## Current behaviour
Validation fails with the error message "**Error One of parameters (value: 1,5) is not of the type Float**"
## Environment information
Tested on https://dmaster.demo.civicrm.org/ 5.72.alpha1
https://lab.civicrm.org/dev/core/-/issues/5000
SearchKit: Allow formatting of the totals in the footer
2024-02-14T10:06:39Z
simon.hermann
SearchKit: Allow formatting of the totals in the footer
SearchKit allows to create a footer row, where the total of a column can be displayed. However, this total does not allow for any formatting or reproduces the formatting of the columns it sums.
It would be great if there would be either ...
SearchKit allows to create a footer row, where the total of a column can be displayed. However, this total does not allow for any formatting or reproduces the formatting of the columns it sums.
It would be great if there would be either an option to choose a formatting (decimal separators, thousand separators, currencies if applicable etc) or if the total would reflect the formatting of the column it sums.
https://lab.civicrm.org/dev/core/-/issues/4999
Imagine a world without CodeGen
2024-03-05T04:32:51Z
colemanw
Imagine a world without CodeGen
Currently we use `CRM_Core_CodeGen` to take our schema/xml files and generate DAO.php, install.sql and uninstall.sql files, which have to be periodically regenerated. This is a minor inconvenience for a core developer, a potential gotcha...
Currently we use `CRM_Core_CodeGen` to take our schema/xml files and generate DAO.php, install.sql and uninstall.sql files, which have to be periodically regenerated. This is a minor inconvenience for a core developer, a potential gotcha for an extension developer, and a major coordination difficulty across *all* extensions in `universe` (whenever any aspect of the generated code needs to change).
But what if we didn't have to generate those files? What if we could read schema information directly from the xml (or potentially a different source).
Current Structure:
-----
**Key:** βοΈ Handwritten file | π Generated file
| File | Purpose | In Core | In Extensions |
| --- | --- | --- | --- |
| βοΈ `schema/xml` | Canonical declaration of entity + all metadata | Run `setup.sh -g` | Run `civix generate:entity-boilerplate` |
| π Install sql | Add schema tables | `civicrm.mysql` | `auto_install.sql` |
| π Uninstall sql | Drop schema tables | `civicrm_drop.mysql` | `auto_uninstall.sql` |
| π Entity.php | Declare entity's existence | `AllCoreTables.data.php` | `*.entityType.php` + `entity-types-php` mixin |
| π `CRM/Core/I18n/SchemaStructure.php` | Lists localizable table columns | Seems kinda redundant with other metadata? | Doesn't exist |
| βοΈ `CRM_Core_DAO` | Base class for all generated DAOs | All DAOs extend this class | Extension DAOs also extend core class (makes change-management across `universe` difficult) |
| π `CRM_*_DAO_*` | Generated from the xml file | Must be generated | Must be generated |
The generated DAO file (including stuff it inherits from `CRM_Core_DAO`) serves a variety of purposes:
1. OO class that allows a database table to be used like a php object, e.g.
```
$contact = new CRM_Contact_DAO_Contact();
$contact->first_name = 'Bob';
$contact->save();
```
This is a neat idea and probably ahead of its time, but is basically deprecated now, mostly because, in a relational database, having access to only one table at a time isn't very useful. If it weren't for legacy core & extension code still using this pattern, we could drop it in favor of more robust tools like APIv4.
2. Static methods like `fields()` and `indices()` which return the data from the xml file in php format.
3. Localizes strings, because CodeGen wraps titles and labels in `ts()`.
4. A bunch of other random static methods (e.g. `disableFullGroupByMode()`) which seem like they'd be better-placed in a separate utility class.
New Structure
----------
If we no longer want to generate files and just read from a canonical source, then the main question is, "what should be the canonical source of entity metadata?"
1. **Stick with XML:** Keep the existing xml files but delete the generated stuff. Parse the xml at runtime to get that data.
- Pro: It's already there, no rewrites needed.
- Con: Poor DX (developers don't generally enjoy writing XML files).
- Con: It's very slow (the slowest by far of all the options) so heavy caching would be needed.
- Con: Without generating php files, another method of i18n string extraction would be needed ([such as this](https://github.com/civicrm/civistrings/pull/17)).
2. **DAO Files:** Delete the `schema/xml` files and run everything from the generated DAO files, which going forward will be hand-edited instead of regenerated.
- Pro: DAO files are already there.
- Con: Also poor DX (the boilerplate in those files would not be fun to write/edit by hand).
3. **Somewhere Else:** Move schema info to e.g. json files or better-structured PHP files.
- Pro: DX and performance could be optimized.
- Con: XML files must be rewritten (could be scripted).
- Con: Migration management for core and extensions.
Supporting Dynamic/Virtual Entities
--------
It's also worth keeping in mind that there are now several types of entities that are dynamic & share a DAO:
- Multi-record custom fields
- ECK entities
- SearchKit materialized displays
The DAO structure doesn't cope with this very well, as the assumption has always been 1-1-1 between table, entity & DAO class. But while we're restructuring things let's avoid adding more code that makes this assumption. An ideal DAO from the POV of virtual entities would be an object that takes entity name in its constructor & initializes itself with the appropriately corresponding tablename, fields, and other metadata.
https://lab.civicrm.org/dev/core/-/issues/4998
[PHP 8] Undefined properties @ ext/Standaloneusers DAO
2024-02-14T10:05:35Z
jofranz
franz@systopia.de
[PHP 8] Undefined properties @ ext/Standaloneusers DAO
PhpStan is reporting some Undefined properties on current master @ eacd1f4206fab41f0cf14bcbd80b5f7187b42bea
```
β standaloneusers (master) phpstan analyse -c ~/repositories/ext/phpstan.d11.neon.dist -l 0 . ...
PhpStan is reporting some Undefined properties on current master @ eacd1f4206fab41f0cf14bcbd80b5f7187b42bea
```
β standaloneusers (master) phpstan analyse -c ~/repositories/ext/phpstan.d11.neon.dist -l 0 . β β
50/50 [ββββββββββββββββββββββββββββ] 100%
------ --------------------------------------------------------------------------------------
Line CRM/Standaloneusers/DAO/Role.php
------ --------------------------------------------------------------------------------------
100 Access to an undefined property CRM_Standaloneusers_DAO_Role::$__table.
π‘ Learn more: https://phpstan.org/blog/solving-phpstan-access-to-undefined-property
------ --------------------------------------------------------------------------------------
------ --------------------------------------------------------------------------------------
Line CRM/Standaloneusers/DAO/Session.php
------ --------------------------------------------------------------------------------------
74 Access to an undefined property CRM_Standaloneusers_DAO_Session::$__table.
π‘ Learn more: https://phpstan.org/blog/solving-phpstan-access-to-undefined-property
------ --------------------------------------------------------------------------------------
------ --------------------------------------------------------------------------------------
Line CRM/Standaloneusers/DAO/User.php
------ --------------------------------------------------------------------------------------
171 Access to an undefined property CRM_Standaloneusers_DAO_User::$__table.
π‘ Learn more: https://phpstan.org/blog/solving-phpstan-access-to-undefined-property
------ --------------------------------------------------------------------------------------
------ --------------------------------------------------------------------------------------
Line CRM/Standaloneusers/DAO/UserRole.php
------ --------------------------------------------------------------------------------------
65 Access to an undefined property CRM_Standaloneusers_DAO_UserRole::$__table.
π‘ Learn more: https://phpstan.org/blog/solving-phpstan-access-to-undefined-property
------ --------------------------------------------------------------------------------------
------ ---------------------------------------------------------------------
Line Civi/Api4/Action/User/PasswordReset.php
------ ---------------------------------------------------------------------
36 Instantiated class API_Exception not found.
π‘ Learn more at https://phpstan.org/user-guide/discovering-symbols
45 Instantiated class API_Exception not found.
π‘ Learn more at https://phpstan.org/user-guide/discovering-symbols
------ ---------------------------------------------------------------------
------ ---------------------------------------------------------------------
Line Civi/Api4/Action/User/SendPasswordReset.php
------ ---------------------------------------------------------------------
40 Instantiated class API_Exception not found.
π‘ Learn more at https://phpstan.org/user-guide/discovering-symbols
------ ---------------------------------------------------------------------
------ -----------------------------------------------------------------------------------------
Line Civi/Api4/Action/User/WriteTrait.php (in context of class Civi\Api4\Action\User\Create)
------ -----------------------------------------------------------------------------------------
56 Instantiated class API_Exception not found.
π‘ Learn more at https://phpstan.org/user-guide/discovering-symbols
59 Instantiated class API_Exception not found.
π‘ Learn more at https://phpstan.org/user-guide/discovering-symbols
------ -----------------------------------------------------------------------------------------
------ ---------------------------------------------------------------------------------------
Line Civi/Api4/Action/User/WriteTrait.php (in context of class Civi\Api4\Action\User\Save)
------ ---------------------------------------------------------------------------------------
56 Instantiated class API_Exception not found.
π‘ Learn more at https://phpstan.org/user-guide/discovering-symbols
59 Instantiated class API_Exception not found.
π‘ Learn more at https://phpstan.org/user-guide/discovering-symbols
------ ---------------------------------------------------------------------------------------
------ -----------------------------------------------------------------------------------------
Line Civi/Api4/Action/User/WriteTrait.php (in context of class Civi\Api4\Action\User\Update)
------ -----------------------------------------------------------------------------------------
56 Instantiated class API_Exception not found.
π‘ Learn more at https://phpstan.org/user-guide/discovering-symbols
59 Instantiated class API_Exception not found.
π‘ Learn more at https://phpstan.org/user-guide/discovering-symbols
------ -----------------------------------------------------------------------------------------
------ ------------------------------------------------------------------------------------------------------------
Line Civi/Standalone/Security.php
------ ------------------------------------------------------------------------------------------------------------
24 Unsafe usage of new static().
π‘ See: https://phpstan.org/blog/solving-phpstan-error-unsafe-usage-of-new-static
328 Regex pattern is invalid: Unknown modifier '+' in pattern: /
^
\$([a-z0-9-]{1,32}) # Match 1 algorithm identifier
(\$v=[0-9+])? # Match 2 optional version
(\$[a-z0-9-]{1,32}=[a-zA-Z0-9/+.-]*(?:,[a-z0-9-]{1,32}=[a-zA-Z0-9/+.-]*)*)? # 3: optional parameters
\$([a-zA-Z0-9/+.-]+) # Match 4 salt
\$([a-zA-Z0-9/+]+) # Match 5 B64 encoded hash
$/x
------ ------------------------------------------------------------------------------------------------------------
[ERROR] Found 15 errors
```
Touches #4072
Config used: https://github.com/jofranz/civicrm-code-scans
https://lab.civicrm.org/dev/core/-/issues/4996
Standalone - user documentation for user management functionality
2024-02-23T16:54:58Z
ufundo
Standalone - user documentation for user management functionality
Would be good to write some user documentation for how to use the standaloneusers user management screen.
I think this belongs somewhere here: https://docs.civicrm.org/sysadmin/en/latest/setup/ ?
Would be good to write some user documentation for how to use the standaloneusers user management screen.
I think this belongs somewhere here: https://docs.civicrm.org/sysadmin/en/latest/setup/ ?
https://lab.civicrm.org/dev/core/-/issues/4994
Standalone - issues with haveibeenpwned on password setting screen?
2024-03-26T11:33:19Z
ufundo
Standalone - issues with haveibeenpwned on password setting screen?
Rich
Rich
https://lab.civicrm.org/dev/core/-/issues/4992
Standalone - front-end theming
2024-02-14T10:01:23Z
ufundo
Standalone - front-end theming
@artfulrobot suggests: provide a template for front facing pages. People can edit that file
(manually) to suit. It should not get overwritten on upgrade.
@artfulrobot suggests: provide a template for front facing pages. People can edit that file
(manually) to suit. It should not get overwritten on upgrade.
Rich
Rich