Development issueshttps://lab.civicrm.org/groups/dev/-/issues2023-06-15T01:11:27Zhttps://lab.civicrm.org/dev/core/-/issues/2184OAUTH2 google doesn't seem to give you refresh tokens easily2023-06-15T01:11:27ZDaveDOAUTH2 google doesn't seem to give you refresh tokens easilyIf you run the authorization_code flow to obtain an access token from google I find the response often doesn't contain a refresh token, so then it can't really be used for cron jobs.
There was some suggestion that you have to delete the...If you run the authorization_code flow to obtain an access token from google I find the response often doesn't contain a refresh token, so then it can't really be used for cron jobs.
There was some suggestion that you have to delete the token in the civi admin AND at google. This [issue](https://github.com/googleapis/google-api-python-client/issues/213#issuecomment-612412147) suggests it only gives a refresh token when you are prompted for consent and not subsequent times (or if you pass the prompt=consent parameter).
It may only come up as a problem during a testing cycle where you keep failing and re-requesting, and for people who are setting up an account and get it right the first time it won't be a problem.
TBD5.64.0https://lab.civicrm.org/dev/core/-/issues/2155Remove 'onlinePendingContribution' payment support from membership edit form2020-11-16T20:05:33ZeileenRemove 'onlinePendingContribution' payment support from membership edit formI want to proposed removing support for 'onlinePendingContribution' from the Membership Edit form.
**What is onlinePendingContribution support you ask?**
It's this box on the membership edit form
![Screen_Shot_2020-10-31_at_6.30.02_PM]...I want to proposed removing support for 'onlinePendingContribution' from the Membership Edit form.
**What is onlinePendingContribution support you ask?**
It's this box on the membership edit form
![Screen_Shot_2020-10-31_at_6.30.02_PM](/uploads/10211382f41b9d0fe92362f620e68d6e/Screen_Shot_2020-10-31_at_6.30.02_PM.png)
**Hey but I've never seen that box!**
Well you only see if if someone has created a pending pay later membership through an online form which you later complete through the membership edit form
**And it allows you to send a customised receipt?**
No, it says you can, you can't
**How else would someone complete that contribution?**
Well - they could do it the same way they would for a pending contribution created in any other way - use the link a moment further down the page
![Screen_Shot_2020-10-31_at_6.27.20_PM](/uploads/3e29866a816528a9265a26a852aa73de/Screen_Shot_2020-10-31_at_6.27.20_PM.png)
**And why do you want to remove it**
There is considerable code complexity needed to support it - about 85 lines of code. Oh, and it's broken in master
**But how do we know no-one is using it**
Well I tested on 5.21 & it's broken there too so my guess is is has broken for a long time....5.33.0https://lab.civicrm.org/dev/core/-/issues/2137Asset building breaks the site2021-03-10T23:23:22ZAlanDixonAsset building breaks the site## NOTE:
This ticket is not about how to solve this problem, which has some known causes and some unknown causes, it was just about logging instead of crashing. Check your civi log (ConfigAndLog) or visit https://civicrm.stackexchange.co...## NOTE:
This ticket is not about how to solve this problem, which has some known causes and some unknown causes, it was just about logging instead of crashing. Check your civi log (ConfigAndLog) or visit https://civicrm.stackexchange.com/questions/37994/why-cant-the-asset-builder-find for help solving the problem.
## Description:
Upon upgrade of a Drupal 8 site to CiviCRM 5.30.1 from 5.29.something, the site broke completely with this php error in the drupal watchdog:
`Civi\Core\Exception\UnknownAssetException: Unrecognized asset name: crm-menubar.css in Civi\Core\AssetBuilder->render() (line 217 of /var/www/drupal/vendor/civicrm/civicrm-core/Civi/Core/AssetBuilder.php).`
Missing assets shouldn't break the site.5.36.0https://lab.civicrm.org/dev/core/-/issues/1987Fix theme configuration section on Display preference and improve `isFrontend...2020-10-14T01:27:41Zswastik-compucorpFix theme configuration section on Display preference and improve `isFrontendPage` function for Drupal CMSProblem Motivation
----------------------------------------
While working on the Drupal web-forms, when we are using CiviCRM fields (like payment processors) on the Drupal webform pages, the CiviCRM current theme JS and CSS files were le...Problem Motivation
----------------------------------------
While working on the Drupal web-forms, when we are using CiviCRM fields (like payment processors) on the Drupal webform pages, the CiviCRM current theme JS and CSS files were leaking (rendering) on the Drupal webform page. This was making the page styling more difficult as one has to first reset the leaking CSS and then style on top of them. Also, there were some bootstrap JS libraries (when Shoreditch is the CiviCRM) file which was loading on the page. So, if a developer wants to develop a bootstrap based Drupal 7 themes and try to style the CiviCRM components, the Shoreditch bootstrap JS files conflicts with Drupal 7 bootstrap theme JS files.
To fix this we had to find a way to stop CiviCRM to apply its theme assets. The best way of it is to find a way in CiviCRM which will contextually select/deselect a CiviCRM theme on Drupal CMS pages. And apparently, the CiviCRM core provides such a feature under the display preference page to select different Front-end and Back-end theme. Unfortunately, this feature was not for Drupal CMS and hence the issue.
Problem Overview
----------------------------------------
For the Drupal CMS, the CiviCRM doesn't provide separate configurations for setting the frontend theme (FE) and the backend theme (BE). This is however present for other CMS integrations
For Drupal, on the Display Preference page, we only have one option for setting the global theme and it sets the BE only and the user can only set the BE.
![3ffa703e-9774-4224-abb0-c967b809dbef](/uploads/821e12db022a5accb4c5d8f7d8063ae3/3ffa703e-9774-4224-abb0-c967b809dbef.png)
The problem with this is that the Drupal User couldn't set the front end theme and the backend theme separately. So, to fix this we remove [the extra if logic](https://github.com/civicrm/civicrm-core/blob/master/templates/CRM/Admin/Form/Preferences/Display.tpl#L210-L225) just for Drupal CMS which hides the configuration for the FE-theme and BE-theme and loads the configuration for drupal as well. This will print both the configuration fields.
![3403e6d0-6a80-4e20-ac50-bd24190cc858](/uploads/d9efbd1d109e2bb15b0938debda8e32e/3403e6d0-6a80-4e20-ac50-bd24190cc858.png)
Also, the CiviCRM theme CSS was leaking on drupal pages too which uses the CiviCRM fields (and in turn called `civicrm_initialise()` function). This is because `$config->userSystem->isFrontEndPage()` function is buggy for Drupal CMS as it return `false` if the user opens a drupal public page. This is because [`isFrontEndPage()` function ](https://github.com/civicrm/civicrm-core/blob/master/CRM/Utils/System/DrupalBase.php#L658-L664))doesn't take care of the corner case of page URLs which are not CiviCRM's one. As it only checks if the URLs is a CiviCRM public URL
```
$item = CRM_Core_Menu::get($path);
// What if `$item` is empty?
return !empty($item['is_public']);
```
If `$item` is empty (that means it's a non-CiviCRM page) even then it returns `false` because the logic is incomplete. It doesn't check if the `$item` is empty.
This [fix](https://github.com/civicrm/civicrm-core/pull/18322) addresses both these issues.
Example use-case
----------------------------------------
1. Click on **Administration -> Customise data and screens -> Display preference**.
2. Go to `Theme` section
Current behaviour
----------------------------------------
![3ffa703e-9774-4224-abb0-c967b809dbef](/uploads/821e12db022a5accb4c5d8f7d8063ae3/3ffa703e-9774-4224-abb0-c967b809dbef.png)
Proposed behaviour
----------------------------------------
![3403e6d0-6a80-4e20-ac50-bd24190cc858](/uploads/d9efbd1d109e2bb15b0938debda8e32e/3403e6d0-6a80-4e20-ac50-bd24190cc858.png)5.31.0https://lab.civicrm.org/dev/core/-/issues/1933Failed scheduled reminders should log message somewhere more useful2021-12-16T14:06:16ZAndy ClarkFailed scheduled reminders should log message somewhere more usefulOverview
----------------------------------------
A failed schedule reminder should log the error in a place that the end user can see why it failed.
Example use-case
----------------------------------------
A schedule reminder is set u...Overview
----------------------------------------
A failed schedule reminder should log the error in a place that the end user can see why it failed.
Example use-case
----------------------------------------
A schedule reminder is set up to send an SMS to a contact with a bad phone number. The reminder will fail, and a message will be added to table civicrm_action_log. The user who set up the reminder will not know whether it failed, or why, since they cannot view database tables.
Proposed behaviour
----------------------------------------
I propose a couple of alternatives:
1. The error message should be logged as an activity, either against the creator of the schedule reminder or the target. Then the user can check for this.
Or
2. The error message should be written to the system log, so at least someone with the 'Log Viewer' extension could see it.
Comments
----------------------------------------
My preference would be the first of the alternatives. There are a number of questions on SE about analysing failed Schedule Reminders - this would be a help with that.5.46.0https://lab.civicrm.org/dev/core/-/issues/1863System check severities out of whack2023-09-08T02:20:40ZAndie HuntSystem check severities out of whackThe severities for system checks are [defined in PSR-3](https://www.php-fig.org/psr/psr-3/#3-psrlogloggerinterface), and the first system checks attempted to match them pretty closely.
| Level | Description (per PSR-3) | Examples (per P...The severities for system checks are [defined in PSR-3](https://www.php-fig.org/psr/psr-3/#3-psrlogloggerinterface), and the first system checks attempted to match them pretty closely.
| Level | Description (per PSR-3) | Examples (per PSR-3) | What happens in CiviCRM |
| ------ | ----- | ----- | ----- |
| emergency | System is unusable. | | You'll never see it because the system won't be functioning. |
| alert | Action must be taken immediately. | Entire website down, database unavailable, etc. This should trigger the SMS alerts and wake you up. | Red pop-up when an admin logs in; item has a red header. |
| critical | Critical conditions. | Application component unavailable, unexpected exception. | Red pop-up when an admin logs in; item has a red header. |
| error | Runtime errors that do not require immediate action but should typically be logged and monitored. | | Red pop-up when an admin logs in; item has a red header. |
| warning | Exceptional occurrences that are not errors. | Use of deprecated APIs, poor use of an API, undesirable things that are not necessarily wrong. | Orange pop-up when an admin logs in; item has an orange header. |
| notice | Normal but significant events. | | Item has a blue header. |
| info | Interesting events. | User logs in, SQL logs. | Item has a green header. |
| debug | Detailed debug information. | | Never displayed. |
However, over the years a few things have happened:
1. Some system checks have severities that don't quite match the specifications here, especially skewing too high.
2. System checks are used to nudge people to update their hosting environment for the future.
3. The system checks have become dominated by things that users don't quite understand.
4. Partners and others supporting lots of organizations have become frustrated that system checks scare or confuse users.
I see there being four main ways to address this:
1. Narrowing who sees the system check messages to only those who are in a position to act on them (through permissions or otherwise).
2. Giving more warning (through upgrade messages and a longer runway of escalating severity) for things that are not currently critical but will become so.
3. Improving the presentation of system check messages and how to snooze or hush them.
4. Doing a better job of giving a system check the right severity.
There's been discussion on the first and second items elsewhere. This ticket is focused on the fourth. Fundamentally, some things will be at the level of "drop everything and fix it", but we don't want to cry wolf.
Here are the existing system checks and their severities. My hope is that by having them all in the same place it will be easier to decide which are more severe than others. The ID column is just here to ease discussion.
| ID | Class | Title | Message | Severity |
| -- | ----- | ----- | ------- | -------- |
| 1 | CRM_Utils_Check_Component_AddressParsing | Street address parsing | Street address parsing is enabled but not supported by your locale | warning |
| 2 | CRM_Utils_Check_Component_Case | CiviCase | Case type "%1" has duplicate XML files ("%2" and "%3") | warning |
| 3 | CRM_Utils_Check_Component_Case | CiviCase | Case type "%1" corresponds to XML file ("%2") The XML file should be named "%3". | warning |
| 4 | CRM_Utils_Check_Component_Case | Timestamps for Activities and Cases | The tables "<em>civicrm_activity</em>" and "<em>civicrm_case</em>" were updated to support two new fields, "<em>created_date</em>" and "<em>modified_date</em>".... | notice |
| 5 | CRM_Utils_Check_Component_Case | Relationship Type Internal Name Duplicates | Relationship type <em>%1</em> has the same internal machine name as another type.... | error |
| 6 | CRM_Utils_Check_Component_Case | Relationship Type Display Label Duplicates | Relationship type <em>%1</em> has the same display label as another type. | error |
| 7 | CRM_Utils_Check_Component_Case | Relationship Type Cross-Duplication | Relationship type <em>%1</em> has an internal machine name that is the same as the display label as another type.... | warning |
| 8 | CRM_Utils_Check_Component_Case | Relationship Type Ambiguity | Relationship type <em>%1</em> appears to be unidirectional, but has the same internal machine name for both sides.... | warning |
| 9 | CRM_Utils_Check_Component_Case | Relationship Type Ambiguity | Relationship type <em>%1</em> appears to be unidirectional internally, but has the same display label for both sides.... | warning |
| 10 | CRM_Utils_Check_Component_Case | Missing Roles | The following roles listed in your case type definitions do not match any relationship type defined in the system: <em>%1</em>.... | error |
| 11 | CRM_Utils_Check_Component_Case | Missing Case Type Definition | Unable to locate xml file for Case Type "<em>%1</em>". | error |
| 12 | CRM_Utils_Check_Component_Case | Missing Case Roles | CaseRoles seems to be missing in the xml file for Case Type "<em>%1</em>". | error |
| 13 | CRM_Utils_Check_Component_Case | Invalid Case Role | CaseRole "<em>%1</em>" in the xml file for Case Type "<em>%2</em>" doesn\'t seem to match any existing relationship type. | error |
| 14 | CRM_Utils_Check_Component_Case | Case Role using display label instead of internal machine name | Please edit the XML file for case type "<em>%2</em>" so that the case role label "<em>%1</em>" is changed to its corresponding name "<em>%3</em>".... | warning |
| 15 | CRM_Utils_Check_Component_Env | PHP Up-to-Date | This system uses PHP version %1 which meets or exceeds the recommendation of %2. | info |
| 16 | CRM_Utils_Check_Component_Env | PHP Out-of-Date | This system uses PHP version %1. This meets the minimum recommendations and you do not need to upgrade immediately, but the preferred version is %2. | notice |
| 17 | CRM_Utils_Check_Component_Env | PHP Out-of-Date | This system uses PHP version %1. This meets the minimum requirements for CiviCRM to function but is not recommended.... | warning |
| 18 | CRM_Utils_Check_Component_Env | PHP Out-of-Date | This system uses PHP version %1. To ensure the continued operation of CiviCRM, upgrade your server now.... | error |
| 19 | CRM_Utils_Check_Component_Env | Forward Compatibility: Enable "mysqli" | Future versions of CiviCRM may require the PHP extension "mysqli". To ensure that your system will be compatible, please install it in advance.... | warning |
| 20 | CRM_Utils_Check_Component_Env | Timestamp Mismatch | Timestamps reported by MySQL (eg "%2") and PHP (eg "%3" ) are mismatched. | error |
| 21 | CRM_Utils_Check_Component_Env | Debug Mode Enabled | Warning: Debug is enabled in system settings. This should not be enabled on production servers. | warning |
| 22 | CRM_Utils_Check_Component_Env | Outbound Email Disabled | Warning: Outbound email is disabled in system settings.... | warning |
| 23 | CRM_Utils_Check_Component_Env | Complete Setup | Please enter your organization's name, primary address and default FROM Email Address (for system-generated emails). | warning |
| 24 | CRM_Utils_Check_Component_Env | Configure Default Mailbox | Please configure a default mailbox for CiviMail. | warning |
| 25 | CRM_Utils_Check_Component_Env | Cron Running OK | Last cron run at %1. | info |
| 26 | CRM_Utils_Check_Component_Env | Cron Not Running | Last cron run at %1. / No cron runs have been recorded. | warning / error |
| 27 | CRM_Utils_Check_Component_Env | Resource URLs: Make them portable | Resource URLs may use absolute paths, relative paths, or variables. Absolute paths are more difficult to maintain.... | notice |
| 28 | CRM_Utils_Check_Component_Env | Directory Paths: Make them portable | Directories may use absolute paths, relative paths, or variables. Absolute paths are more difficult to maintain.... | notice |
| 29 | CRM_Utils_Check_Component_Env | Directory not writable | The %1 is not writable. Please check your file permissions. | error |
| 30 | CRM_Utils_Check_Component_Env | Directory not writable | Directory %1 is not writable. Please change your file permissions. *(this is actually an error checking the version)* | error |
| 31 | CRM_Utils_Check_Component_Env | Update Check Disabled | The check for new versions of CiviCRM has been disabled.... | notice |
| 32 | CRM_Utils_Check_Component_Env | *Version update messages* | *As provided by version check* | info / notice / warning / critical |
| 33 | CRM_Utils_Check_Component_Env | Directory not writable | Your extensions directory is not set.... | notice |
| 34 | CRM_Utils_Check_Component_Env | Extensions directory incorrect | Your extensions directory path points to %1, which is not a directory.... | error |
| 35 | CRM_Utils_Check_Component_Env | Read-Only Extensions | Your extensions directory (%1) is read-only.... | notice |
| 36 | CRM_Utils_Check_Component_Env | Extensions url missing | The extensions URL is not properly set.... | error |
| 37 | CRM_Utils_Check_Component_Env | Extensions check disabled | Not checking remote URL for extensions since ext_repo_url is set to false. | notice |
| 38 | CRM_Utils_Check_Component_Env | Extension download error | *Message thrown by extension check* | error |
| 39 | CRM_Utils_Check_Component_Env | No Extensions Available for this Version | There are currently no extensions on the CiviCRM public extension directory which are compatible with version %1.... | notice |
| 40 | CRM_Utils_Check_Component_Env | Extensions | No extensions installed. | info |
| 41 | CRM_Utils_Check_Component_Env | Extension Error | Failed to read extension (%1).... / %1 extension (%2) is installed but missing files. | error |
| 42 | CRM_Utils_Check_Component_Env | Extension Update Available | %1 (%2) version %3 is installed. Upgrade to version %5. | warning |
| 43 | CRM_Utils_Check_Component_Env | Extensions | All extensions are up-to-date | info |
| 44 | CRM_Utils_Check_Component_Env | Extension Upgrades Pending | Extension upgrades should be run as soon as possible. | error |
| 45 | CRM_Utils_Check_Component_Env | Database Version Missing | Version information found to be missing in database.... | error |
| 46 | CRM_Utils_Check_Component_Env | Database Version Invalid | Database is marked with invalid version format.... | error |
| 47 | CRM_Utils_Check_Component_Env | Database Partially Upgraded | Database check failed - the database looks to have been partially upgraded. | alert |
| 48 | CRM_Utils_Check_Component_Env | Database Upgrade Required | New codebase version detected.... | alert |
| 49 | CRM_Utils_Check_Component_Env | Database In Unexpected Version | Your database is marked with an unexpected version number.... | error |
| 50 | CRM_Utils_Check_Component_Env | MyISAM Database Engine | Your database is configured to use the MyISAM database engine.... | error |
| 51 | CRM_Utils_Check_Component_Env | No Default value for Auto Responder. | Reply Auto Responder is not set to any default value in Headers, Footers, and Automated Messages.... | warning |
| 52 | CRM_Utils_Check_Component_Env | Missing mbstring Extension | The PHP Multibyte String extension is needed for CiviCRM to correctly handle user input among other functionality.... | warning |
| 53 | CRM_Utils_Check_Component_Env | Non-Production Environment | The environment of this CiviCRM instance is set to '%1'.... | alert |
| 54 | CRM_Utils_Check_Component_Env | Incorrect Resource URL | The Resource URL is not set correctly.... | error |
| 55 | CRM_Utils_Check_Component_Env | MySQL Emoji Support (utf8mb4) | Future versions of CiviCRM may require MySQL to support utf8mb4 encoding.... | warning |
| 56 | CRM_Utils_Check_Component_Env | PHP MySQL Driver (mysqlnd) | It is recommended, though not yet required, to upgrade your PHP MySQL driver (mysqlnd) to >= 5.0.9 for utf8mb4 support. | warning |
| 57 | CRM_Utils_Check_Component_Env | PHP MySQL Driver (libmysqlclient) | It is recommended, though not yet required, to upgrade your PHP MySQL driver (libmysqlclient) to >= 5.5.3 for utf8mb4 support. | warning |
| 58 | CRM_Utils_Check_Component_Env | MySQL Out-of-Date | This system uses MySQL/MariaDB v%1. To ensure the continued operation of CiviCRM, upgrade MySQL now.... | error |
| 59 | CRM_Utils_Check_Component_Env | MySQL Out-of-Date | This system uses MySQL/MariaDB v%1. To prepare for CiviCRM v%5, please upgrade MySQL.... | warning |
| 60 | CRM_Utils_Check_Component_Env | MySQL Out-of-Date | This system uses MySQL/MariaDB v%1. You can continue to use this version of MySQL.... | notice |
| 61 | CRM_Utils_Check_Component_FinancialTypeAcls | Extension Missing | CiviCRM will in the future require the extension %1 for CiviCRM Reports to work correctly with the Financial Type ACLs. | warning |
| 62 | CRM_Utils_Check_Component_OptionGroups | Option Values with problematic Values | The Following Option Values contain value fields that do not match the Data Type of the Option Group.... | notice |
| 63 | CRM_Utils_Check_Component_PriceFields | Invalid Price Fields | the following Price Set Fields use disabled or invalid financial types and need to be fixed if they are to still be used.... | warning |
| 64 | CRM_Utils_Check_Component_Schema | Performance warning: Missing indices | The following tables have missing indices.... | warning |
| 65 | CRM_Utils_Check_Component_Schema | Missing Log Tables | You don't have logging enabled on some tables.... | warning |
| 66 | CRM_Utils_Check_Component_Schema | Smart Group check did not run | The smart group check was unable to run. | info |
| 67 | CRM_Utils_Check_Component_Schema | Disabled/Deleted fields on Smart Groups | The following smart groups include custom fields which are disabled/deleted from the database.... | warning |
| 68 | CRM_Utils_Check_Component_Schema | Deprecated monetary value display format configuration | The Monetary Value Display format is a deprecated setting, and this site has a non-standard format. | warning |
| 69 | CRM_Utils_Check_Component_Security | Security Warning | The CiviCRM debug log should not be downloadable. | warning |
| 70 | CRM_Utils_Check_Component_Security | Private Files Readable | Files in the data directory (%2) should not be downloadable.... | warning |
| 71 | CRM_Utils_Check_Component_Security | Browseable Directories | Directory %2 should not be browseable via the web.... | error |
| 72 | CRM_Utils_Check_Component_Security | Unsafe Files | File '%1' presents a security risk and should be deleted. | critical |
| 73 | CRM_Utils_Check_Component_Security | Remote Profiles Enabled | Warning: External profile support (aka "HTML Snippet" support) is enabled in system settings. | warning |
| 74 | CRM_Utils_Check_Component_Security | Security Warning | The system administrator has disabled security settings (%1). Connections to remote applications are insecure. | warning |
| 75 | CRM_Utils_Check_Component_Source | Old files | The local system includes old files which should not exist.... | warning |
| 76 | CRM_Utils_Check_Component_Timestamps | Timestamps and Timezones | This MySQL database stores certain fields with data-type "DATETIME". To improve timezone support, you <em>may</em> want to change these from "DATETIME" to "TIMESTAMP".... | notice |
See also discussion on [PR #17698](https://github.com/civicrm/civicrm-core/pull/17698).https://lab.civicrm.org/dev/wordpress/-/issues/51Drop support for WordPress versions prior to 4.92020-06-08T14:50:26ZkcristianoDrop support for WordPress versions prior to 4.9Currently we state that we support WordPress versions back to 3.4 ["WordPress 3.4.x or newer is required."](https://docs.civicrm.org/sysadmin/en/latest/requirements/#wordpress)
However, CiviCRM won't run on all older versions of WP. A...Currently we state that we support WordPress versions back to 3.4 ["WordPress 3.4.x or newer is required."](https://docs.civicrm.org/sysadmin/en/latest/requirements/#wordpress)
However, CiviCRM won't run on all older versions of WP. As WP itself raised it's minimum requirements to php 5.6 in [version 5.2](https://make.wordpress.org/core/2018/12/08/updating-the-minimum-php-version/) it's time to change the minimum required version.
So why Version 4.9?
4.9 was released on [November 15 2017](https://wordpress.org/support/wordpress-version/version-4-9/) and is fully compatible with php versions up to [7.2](https://wordpress.org/support/wordpress-version/version-4-9/#miscellaneous) 4.9 will support our current ESR release and our upcoming releases until we drop php 7.2 support. I expect that will cover us for quite some time.https://lab.civicrm.org/dev/wordpress/-/issues/49CiviCRM front end pages broken on WP Latest (master)2021-07-30T16:20:09ZkcristianoCiviCRM front end pages broken on WP Latest (master)WordPress just committed bug fixes `redirect_canonical()` in their master branch. The history is as follows:
Original redirect_canonical issues and patches :
[ticket 11694](https://core.trac.wordpress.org/ticket/11694)
[svn 34492](...WordPress just committed bug fixes `redirect_canonical()` in their master branch. The history is as follows:
Original redirect_canonical issues and patches :
[ticket 11694](https://core.trac.wordpress.org/ticket/11694)
[svn 34492](https://core.trac.wordpress.org/changeset/34492)
2020 redirect_canonical issues :
[ticket 45337](https://core.trac.wordpress.org/ticket/45337)
[ticket 40773](https://core.trac.wordpress.org/ticket/40773)
[ticket 28081](https://core.trac.wordpress.org/ticket/28081)
2020 redirect_canonical svn patches:
[svn 47727](https://core.trac.wordpress.org/changeset/47727)
[svn 47760](https://core.trac.wordpress.org/changeset/47760)
[svn 47761](https://core.trac.wordpress.org/changeset/47761)
[svn 47759](https://core.trac.wordpress.org/changeset/47759)
2020 redirect_canonical Git patches:
[47727](https://github.com/WordPress/wordpress-develop/commit/af596bcc5b37b259982b3e7af4a8c5ab41b8e27e)
[47760](https://github.com/WordPress/wordpress-develop/commit/de14ea86bfe7b34cf99276ae356da43cec088c5c)
[47761](https://github.com/WordPress/wordpress-develop/commit/0206900cfff1b44af94f33f95510b18a77f5dd60)
[47759](https://github.com/WordPress/wordpress-develop/commit/54c8470bd625c843a00f1ecca328c22d279b9632)
[changelog for canonical.php](https://github.com/WordPress/WordPress/commits/master/wp-includes/canonical.php)
These WP changes are correct, the root of the issue is that CiviCRM used `page=CiviCRM` was used on the front end. It should only have been used on the back end. We've gotten away with this for 8 years, it's now time to fix.
The issue is that `canonical_redirect()` now properly strips `page=CiviCRM` from front end pages.
https://wplatest.tadpole.cc is an example site running master of both WP and CiviCRM. CiviCRM pages built with shortcode pages load, but if you take action - try and contribute, submit a profile, click on a link to register on an event info page - 404.
Pages that are linbked to directly - cleanurls or ugly urls, 404.
We need to remove `page=CiviCRM` from the front end pages.
We need to do this before WP updates and we need to backport to ESR as this will break all WP CiviCRM sites.
There is no way understate that if we do dont fix ALL WP Sites will break on update. And if WP does this as aminor release that gets pushed out via auto-update :boom: :bomb:5.26.0https://lab.civicrm.org/dev/core/-/issues/1413Search the contacts modified in a period of time by a user2023-01-09T05:03:22ZdmunioSearch the contacts modified in a period of time by a userOverview
----------------------------------------
Possibility to search the contacts added or modified in a period of time by a particular user.
Example use-case
----------------------------------------
1. Click on **Search -> Advanced ...Overview
----------------------------------------
Possibility to search the contacts added or modified in a period of time by a particular user.
Example use-case
----------------------------------------
1. Click on **Search -> Advanced Search**.
2. In set **Change log**, enter time period and sort name of the user who added or modified the contacts sought.
3. Click on **Search button**.
Current behaviour
----------------------------------------
Currently it is only possible to search for contacts added or modified in a certain period. And separately, you can filter the contacts added and modified by a specific user. In the current version of civicrm (5.20) a note is displayed that clarifies this functionality in the **Modified By** field: **Note this field just filters on who made a change no matter when that change happened, It doesn't have any link to the modified date field.**
Proposed behaviour
----------------------------------------
Having the possibility to search for contacts added or modified in a period of time and by a specific user, constitutes a fundamental functionality in the monitoring of change logs.
For this improvement we have made the following pull request: https://github.com/civicrm/civicrm-core/pull/15913
Comments
----------------------------------------https://lab.civicrm.org/dev/core/-/issues/1378Scheduled reminder emails sent to contacts with do_not_email set or with emai...2020-01-09T00:58:06ZAndie HuntScheduled reminder emails sent to contacts with do_not_email set or with email on holdI have no idea how new this is, but contacts with "Do not email" checked receive emailed scheduled reminders. If "Do not email" is checked, a contact should never be sent email under any circumstances.I have no idea how new this is, but contacts with "Do not email" checked receive emailed scheduled reminders. If "Do not email" is checked, a contact should never be sent email under any circumstances.https://lab.civicrm.org/dev/core/-/issues/1356Add user friendly way to report issues2023-01-19T05:03:35ZRichAdd user friendly way to report issues
We should have a way from within CiviCRM to provide the user with a template they can use to submit an issue.
See https://github.com/civicrm/civicrm-core/pull/15665#issuecomment-548268840
Having an "issue reporting" helper could just...
We should have a way from within CiviCRM to provide the user with a template they can use to submit an issue.
See https://github.com/civicrm/civicrm-core/pull/15665#issuecomment-548268840
Having an "issue reporting" helper could just do that paperwork for me so I could copy and paste.
- might reduce the barrier to contributing
- might get more accurate data (civicrm version, nginx, php, browser...) leading to quicker fixes
- we have better control of the template - could ask questions intereactively to generate it.
- we would have space to explain things like gitlab/hub to users.
- (one day could use api to search/report to gitlab!)homotechsualhomotechsualhttps://lab.civicrm.org/dev/core/-/issues/1310Implement REST interface for APIv42022-02-08T15:59:35ZseamusleeImplement REST interface for APIv4It would appear looking at the APIv4 Explorer that the REST interface has not yet been coded up. Added a ticket to track progress
ping @colemanw @totten @MikeyMJCOIt would appear looking at the APIv4 Explorer that the REST interface has not yet been coded up. Added a ticket to track progress
ping @colemanw @totten @MikeyMJCOhttps://lab.civicrm.org/dev/drupal/-/issues/90SMS limit is hardcoded at 460 but should be changeable somewhere2021-02-04T19:26:45ZjasonobrownSMS limit is hardcoded at 460 but should be changeable somewhereTwillio (and probably other sms providers) allows SMS messages up to 1600 characters, but Civi has the limit hardcoded at 460. I've verified that by simply going to CRM/SMS/Provider.php and changing MAX_SMS_CHAR from 460 to 1600 the sys...Twillio (and probably other sms providers) allows SMS messages up to 1600 characters, but Civi has the limit hardcoded at 460. I've verified that by simply going to CRM/SMS/Provider.php and changing MAX_SMS_CHAR from 460 to 1600 the system now accepts (and sends) messages up to 1600 characters. It seems logical that the character limit should able to be adjusted and stored somewhere rather than set as a static value in the code. We are currently using the larger limit, and would really like to see this implemented asap so that we can stop manually updating the code each time we update civi.https://lab.civicrm.org/dev/core/-/issues/1214Suggest to add a system status check that checks if trigger/view definer is t...2023-06-06T05:03:18ZDaveDSuggest to add a system status check that checks if trigger/view definer is the same db user as in civicrm_settings.phpIt comes up semi-regularly for people who are moving sites around or setting up staging/live where the trigger/view definer is the db user on the other site, and so errors happen. A system status check could point this out and point you ...It comes up semi-regularly for people who are moving sites around or setting up staging/live where the trigger/view definer is the db user on the other site, and so errors happen. A system status check could point this out and point you to the link to rebuild triggers. I don't think it should do it automatically because there might be a legit reason you purposely made them different, although that does seem unlikely for a civi site.
I can add this to my rainy-day todo list. It's just not going to be at the top.https://lab.civicrm.org/dev/core/-/issues/1156Do not delete associated contributions when membership is deleted2022-11-29T05:03:30ZStoobDo not delete associated contributions when membership is deletedBack in 2011 https://issues.civicrm.org/jira/browse/CRM-7188 it appears it was the intent to change the behavior of membership deletion to NOT delete associated contributions. This warning message was instituted as a work around but the...Back in 2011 https://issues.civicrm.org/jira/browse/CRM-7188 it appears it was the intent to change the behavior of membership deletion to NOT delete associated contributions. This warning message was instituted as a work around but the behavior change was apparently never implemented. I'd like to get some discussion and/or traction on finally implementing this change. Having discussed with @eileen @andrewhunt @JoeMurray @KarinG and BoT, I haven't found yet an opinion or a use case where the current behavior is desirable, but I don't want to assume that the community is unanimous in this reagard.
Input from others is welcome, I'm asking @colemanw @cividesk and any others who have run into this behavior for their thoughts and/or historical memory.
![delete-member](/uploads/2528146de59e3210bf7015eb726d036e/delete-member.jpg)https://lab.civicrm.org/dev/core/-/issues/1111Move upload_max_filesize warning to system check2022-11-20T21:49:18ZAndie HuntMove upload_max_filesize warning to system checkCurrently the `CRM_Utils_Number::formatUnitSize()` function [does a check](https://github.com/civicrm/civicrm-core/blob/358a1864ba3c5a3fc3ff65f03b3db045ea2199a8/CRM/Utils/Number.php#L107-L118) for whether the `upload_max_filesize` in PHP...Currently the `CRM_Utils_Number::formatUnitSize()` function [does a check](https://github.com/civicrm/civicrm-core/blob/358a1864ba3c5a3fc3ff65f03b3db045ea2199a8/CRM/Utils/Number.php#L107-L118) for whether the `upload_max_filesize` in PHP is smaller than the maximum upload size in your site settings.
1. The message calls the php.ini setting "upload_max_size", which will lead people astray.
2. This really should be a system check that you see well before you are about to upload something.
There's a similar check in there if `post_max_size` is smaller than `upload_max_filesize`. This should also move to the system check.https://lab.civicrm.org/dev/core/-/issues/723File custom fields cause a fatal error when trying to merge2019-05-30T21:47:13ZtommyboboFile custom fields cause a fatal error when trying to mergeIf you are trying to merge a contact with a custom field that is a file, if the contact that will be deleted is passing a file to the remain contact, the merge will fail, generate a fatal error, and lose all the custom data in the set in...If you are trying to merge a contact with a custom field that is a file, if the contact that will be deleted is passing a file to the remain contact, the merge will fail, generate a fatal error, and lose all the custom data in the set including the file.
To recreate:
1. Create a contact custom field that accepts a file.
2. Add files to one or two contact records.
3. Merge a contact with a file into another contact
4. Fatal Error occurs. All files are no longer attached to the custom fields. The contact to be deleted loses all the custom fields. While the remaining contact looses only the file.
If the contact that is to remain has no image the error message is
> **No record found for given file ID - 0 and entity ID - 203**
The Entity ID is the Contact ID of the remaining contact
> Feb 13 16:13:23 [info] $backTrace = #0 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Error.php(381): CRM_Core_Error::backtrace("backTrace", TRUE)
> #1 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/BAO/File.php(234): CRM_Core_Error::fatal("No record found for given file ID - 0 and entity ID - 203")
> #2 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/CRM/Dedupe/Merger.php(1723): CRM_Core_BAO_File::deleteFileReferences(NULL, "203", 9)
> #3 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/CRM/Contact/Form/Merge.php(289): CRM_Dedupe_Merger::moveAllBelongings("203", "204", (Array:11))
> #4 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Form.php(489): CRM_Contact_Form_Merge->postProcess()
> #5 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/StateMachine.php(160): CRM_Core_Form->mainProcess()
> #6 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/QuickForm/Action/Next.php(61): CRM_Core_StateMachine->perform(Object(CRM_Contact_Form_Merge), "next", "Next")
> #7 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Controller.php(203): CRM_Core_QuickForm_Action_Next->perform(Object(CRM_Contact_Form_Merge), "next")
> #8 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Page.php(103): HTML_QuickForm_Controller->handle(Object(CRM_Contact_Form_Merge), "next")
> #9 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Controller.php(351): HTML_QuickForm_Page->handle("next")
> #10 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/CRM/Utils/Wrapper.php(113): CRM_Core_Controller->run()
> #11 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(282): CRM_Utils_Wrapper->run("CRM_Contact_Form_Merge", "Merge Contact", (Array:0))
> #12 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(84): CRM_Core_Invoke::runItem((Array:13))
> #13 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(52): CRM_Core_Invoke::_invoke((Array:3))
> #14 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm.php(1240): CRM_Core_Invoke::invoke((Array:3))
> #15 /srv/www/demo19/public_html/wp-includes/class-wp-hook.php(298): CiviCRM_For_WordPress->invoke("")
> #16 /srv/www/demo19/public_html/wp-includes/class-wp-hook.php(323): WP_Hook->apply_filters("", (Array:1))
> #17 /srv/www/demo19/public_html/wp-includes/plugin.php(453): WP_Hook->do_action((Array:1))
> #18 /srv/www/demo19/public_html/wp-admin/admin.php(222): do_action("toplevel_page_CiviCRM")
> #19 {main}
If the remaining contact has a file that will be overwritten.
>** DB Error: syntax error**
> [code] => -2
> [message] => DB Error: syntax error
> [mode] => 16
> [debug_info] => UPDATE civicrm_value_test_info_4 SET image_9 = WHERE entity_id = 203 [nativecode=1064 ** You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'WHERE entity_id = 203' at line 1]
> [type] => DB_Error
> [user_info] => UPDATE civicrm_value_test_info_4 SET image_9 = WHERE entity_id = 203 [nativecode=1064 ** You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'WHERE entity_id = 203' at line 1]
> [to_string] => [db_error: message="DB Error: syntax error" code=-2 mode=callback callback=CRM_Core_Error::handle prefix="" info="UPDATE civicrm_value_test_info_4 SET image_9 = WHERE entity_id = 203 [nativecode=1064 ** You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'WHERE entity_id = 203' at line 1]"]
> )
> #1 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/packages/PEAR.php(921): CRM_Core_Error::handle(Object(DB_Error))
> #2 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/packages/DB.php(985): PEAR_Error->__construct("DB Error: syntax error", -2, 16, (Array:2), "UPDATE civicrm_value_test_info_4 SET image_9 = WHERE entity_id = 203 [native...")
> #3 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/packages/PEAR.php(575): DB_Error->__construct(-2, 16, (Array:2), "UPDATE civicrm_value_test_info_4 SET image_9 = WHERE entity_id = 203 [native...")
> #4 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/packages/PEAR.php(223): PEAR->_raiseError(Object(DB_mysqli), NULL, -2, 16, (Array:2), "UPDATE civicrm_value_test_info_4 SET image_9 = WHERE entity_id = 203 [native...", "DB_Error", TRUE)
> #5 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/packages/DB/common.php(1907): PEAR->__call("raiseError", (Array:7))
> #6 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/packages/DB/mysqli.php(933): DB_common->raiseError(-2, NULL, NULL, "UPDATE civicrm_value_test_info_4 SET image_9 = WHERE entity_id = 203 [native...", "1064 ** You have an error in your SQL syntax; check the manual that correspon...")
> #7 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/packages/DB/mysqli.php(403): DB_mysqli->mysqliRaiseError()
> #8 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/packages/DB/common.php(1216): DB_mysqli->simpleQuery("UPDATE civicrm_value_test_info_4 SET image_9 = WHERE entity_id = 203")
> #9 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/packages/DB/DataObject.php(2415): DB_common->query("UPDATE civicrm_value_test_info_4 SET image_9 = WHERE entity_id = 203")
> #10 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/packages/DB/DataObject.php(1607): DB_DataObject->_query("UPDATE civicrm_value_test_info_4 SET image_9 = WHERE entity_id = 203")
> #11 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/DAO.php(438): DB_DataObject->query("UPDATE civicrm_value_test_info_4 SET image_9 = WHERE entity_id = 203")
> #12 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/DAO.php(1413): CRM_Core_DAO->query("UPDATE civicrm_value_test_info_4 SET image_9 = WHERE entity_id = 203", TRUE)
> #13 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/CRM/Dedupe/Merger.php(1736): CRM_Core_DAO::executeQuery("UPDATE civicrm_value_test_info_4 SET image_9 = WHERE entity_id = 203")
> #14 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/CRM/Contact/Form/Merge.php(289): CRM_Dedupe_Merger::moveAllBelongings("203", "204", (Array:10))
> #15 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Form.php(489): CRM_Contact_Form_Merge->postProcess()
> #16 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/StateMachine.php(160): CRM_Core_Form->mainProcess()
> #17 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/QuickForm/Action/Next.php(61): CRM_Core_StateMachine->perform(Object(CRM_Contact_Form_Merge), "next", "Next")
> #18 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Controller.php(203): CRM_Core_QuickForm_Action_Next->perform(Object(CRM_Contact_Form_Merge), "next")
> #19 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/packages/HTML/QuickForm/Page.php(103): HTML_QuickForm_Controller->handle(Object(CRM_Contact_Form_Merge), "next")
> #20 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Controller.php(351): HTML_QuickForm_Page->handle("next")
> #21 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/CRM/Utils/Wrapper.php(113): CRM_Core_Controller->run()
> #22 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(282): CRM_Utils_Wrapper->run("CRM_Contact_Form_Merge", "Merge Contact", (Array:0))
> #23 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(84): CRM_Core_Invoke::runItem((Array:13))
> #24 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm/CRM/Core/Invoke.php(52): CRM_Core_Invoke::_invoke((Array:3))
> #25 /srv/www/demo19/public_html/wp-content/plugins/civicrm/civicrm.php(1240): CRM_Core_Invoke::invoke((Array:3))
> #26 /srv/www/demo19/public_html/wp-includes/class-wp-hook.php(298): CiviCRM_For_WordPress->invoke("")
> #27 /srv/www/demo19/public_html/wp-includes/class-wp-hook.php(323): WP_Hook->apply_filters("", (Array:1))
> #28 /srv/www/demo19/public_html/wp-includes/plugin.php(453): WP_Hook->do_action((Array:1))
> #29 /srv/www/demo19/public_html/wp-admin/admin.php(222): do_action("toplevel_page_CiviCRM")5.15.0https://lab.civicrm.org/dev/core/-/issues/711Google+ references should be removed as it phases out2023-01-10T18:40:34ZphilmorbruGoogle+ references should be removed as it phases outNot a big deal, but as Google phases out Google+, visible references to it should be removed, especially from non-configurable features such as the "Tell a Friend" block for events.Not a big deal, but as Google phases out Google+, visible references to it should be removed, especially from non-configurable features such as the "Tell a Friend" block for events.5.23.0https://lab.civicrm.org/dev/core/-/issues/645Use site email domain in place of bounce email domain for automated messages2023-09-23T05:03:26ZnishantBUse site email domain in place of bounce email domain for automated messagesHello there!!
We encountered a scenario where we can whitelist only one email domain to send emails. We want to use email domain (eg: bouncedomain.com) for bounce processing and a different one (sitedomain.com) for rest of the emails wh...Hello there!!
We encountered a scenario where we can whitelist only one email domain to send emails. We want to use email domain (eg: bouncedomain.com) for bounce processing and a different one (sitedomain.com) for rest of the emails which works fine except that do-not-reply emails use the email domain set for bounce processing (bouncedomain.com) because of which AWS SES prevent those emails to be sent.
**Current behaviour:**
1. Regular emails: example@sitedomain.com
2. Bounce emails: bounce@bouncedomain.com
3. Do-not-reply emails: do-not-reply@bouncedomain.com
**Expected behaviour:**
1. Regular emails: example@sitedomain.com
2. Bounce emails: bounce@bouncedomain.com
3. Do-not-reply emails: do-not-reply@sitedomain.com
Is there already a configuration to set that or would it be a good idea to add a field where we can set the email domain for do-not-reply emails ?
Thanks!https://lab.civicrm.org/dev/core/-/issues/539Create a hook for custom relative date filters (CRM-16195)2024-03-12T14:46:41ZJonGoldCreate a hook for custom relative date filters (CRM-16195)To summarize: From the time relative date filters debuted in 4.2(?) until 4.7, each release added a number of relative date filters that one person needed and the rest of the world didn't. To prevent this happening forever, we moved rel...To summarize: From the time relative date filters debuted in 4.2(?) until 4.7, each release added a number of relative date filters that one person needed and the rest of the world didn't. To prevent this happening forever, we moved relative dates into an OptionGroup, and intended to give the ability to create new ones.
I worked on this last year but some cleanup PRs got stalled. They're all merged now so I'm submitting this.
While @eileen did work recently to support relative dates like "32 months in the past", it's still not possible to do relative dates like, "from 6 months ago to the end of this year", or "from Thanksgiving to Christmas". A former client of mine had reports that went from October to September, but this was NOT their fiscal year.
A simple hook facilitates the creation of custom relative date filters. I'll submit tests, but you can see an extension that uses it here: https://github.com/MegaphoneJon/com.megaphonetech.relativedatetest5.9JonGoldJonGold