- Issue created by @hansrossel
- πΊπΈUnited States markusa
I tested on a local setup of Drupal 10.2.2 and CiviCRM 5.69
I uninstalled the Rules module for this test, after uninstalling, removing Rules code, and clearing caches, I am still able to edit custom blocks
I see in the error message you documented, that it is a CiviCRM Entity Rules Condition plugin that is not finding the base class from Rules. That is a plugin, and should be able to be in the codebase without Rules installed. Rules during its plugin discovery would look for modules that implement plugins
Being unable to replicate, I wonder if there is something cache in your case, that may need a reset.
Perhaps there is some other reason other than Rules being uninstalled that maybe the cause.
- π¨π¦Canada paulrooney
I tested with Drupal 10.2.2, CiviCRM 5.67.3, and CiviCRM Entity 4.0.0-beta1.
If Rules is not installed, attempting to edit a block results in this error:
Error: Class "Drupal\rules\Core\RulesConditionBase" not found in include() (line 28 of /PATH/httpdocs/modules/contrib/civicrm_entity/src/Plugin/Condition/DrupalUserExist.php).
If Rules 8.x-3.0-alpha8 is installed, blocks are editable.
It looks like CiviCRM Entity uses RulesConditionBase, which is defined in the Rules module to extend ConditionPluginBase from Drupal core.
CiviCRM Entity module:
"use Drupal\rules\Core\RulesConditionBase;" is referenced in these three files:
https://git.drupalcode.org/project/civicrm_entity/-/blob/4.0.x/src/Plugi...
https://git.drupalcode.org/project/civicrm_entity/-/blob/4.0.x/src/Plugi...
https://git.drupalcode.org/project/civicrm_entity/-/blob/4.0.x/src/Plugi...---
Rules module:
"abstract class RulesConditionBase extends ConditionPluginBase implements RulesConditionInterface"
https://git.drupalcode.org/project/rules/-/blob/8.x-3.x/src/Core/RulesCo...---
Drupal core
"abstract class ConditionPluginBase extends ExecutablePluginBase implements ConditionInterface"
https://git.drupalcode.org/project/drupal/-/blob/10.2.x/core/lib/Drupal/... - Status changed to Needs review
10 months ago 8:03pm 23 January 2024 - πΊπΈUnited States markusa
I've got at least 5 production sites with Drupal 10 that don't have the Rules module, and do have the CiviCRM Entity module, running without error.
There's got to be some other reason.
Was Rules installed for some time, but has been recently uninstalled?
Perhaps there is another module that is discovering the plugin, that I don't have.
Regardless, it is not hard to move anything Rules related to a submodule
Here is a PR which you can use to patch with: https://github.com/eileenmcnaughton/civicrm_entity/pull/462
https://patch-diff.githubusercontent.com/raw/eileenmcnaughton/civicrm_en... - Status changed to Active
10 months ago 8:54pm 23 January 2024 - π¨π¦Canada paulrooney
Thank you! Moving Rules integration to a submodule solves the problem I was having, and the site works as expected without Rules installed.
I'm not aware of Rules ever having been installed there previously. I agree there must be some other reason, as I tested the original issue on a different site with Drupal 10.2.2, CiviCRM 5.68.1, and CiviCRM Entity 4.0.0-beta1, without Rules installed and the issue did not occur there.
I'm not sure what the cause was in this case but the submodule does solve the problem. Thanks again.