Details
-
Type: New Feature
-
Status: Open
-
Priority: Important
-
Resolution: Unresolved
-
Affects Version/s: 4.7
-
Fix Version/s: None
-
Component/s: None
-
Labels:
-
Versioning Impact:Major (incompatible API change)
-
Documentation Required?:Developer Doc
-
Funding Source:Contributed Code
-
Verified?:No
Description
Since the D8 module is unreleased, we have an opportunity here to start the integration with Drupal 8 very fresh, and use a better approach. I'd like the community to consider getting its Views integration, by CiviCRM tables/API entities exposed as Drupal Entities.
Modules such as Contact Reference, CiviCRM Rules Integration would not be necessary to write because exposing CiviCRM data as Drupal entities would give you this type of functionality, better, much easier, and with broader support all Drupal modules that make use of the Entity API.
So instead of investing a bunch of time porting all the sub modules of the current Drupal integration to D8, why don't we just write one module that properly integrates with Drupal 8?
if you look at the code Torrance wrote, he had started a basic entity exposure for Contacts. Now his code is outdated, and needs to be updated to work with the current Drupal version, but he was already thinking that way.
I'm going to write Drupal entity exposure either way for CiviCRM, either in core, or in a 8.x version of CiviCRM Entity, but I'm offering my time to make something interesting happen for the D8 version. I would recommend this functionality not be in the Core Drupal module, but in an additional module that ships with core, just like the current Views integration for D8 is. Eileens current CiviCRM Entity repo would be for continued support for the D7 version, which at this point I don't see any reason to put into Core.
The advantages of this are numerous.
1) You get the Views integration, and instead of have one Core integration hard coded, you can get a ton of integration for free by Drupal entity exposure, and we just augment this with field/filter/relationship handlers....Cleaner, highly organized, purposeful Views integration code.
2) Integration out of the box with the Drupal Entity API, which would mean the ability to integrate with Rules, Entity Reference, and much more without having to write other specific integration modules
3) No need to port Contact Reference, CiviCRM Rules integration, etc...
4) Group and User role sync could be handled with Rules, and since D8 configuration is exportable, Core could ship with defaults/examples....
I'm creating this issue to have a place to document discussion and debate on the merits of this proposal.
There should be some debate on what features of CiviCRM Entity would be developed for the core module. CiviCRM Entity for D7 includes Drupal based View pages and Edit forms for all exposed entities. The community may not like this as standard. If it is found to be disagreeable to have this, then the contrib module civicrm_entity on D.O could provide this functionality, and those that want it could download it and install it that way.
I put the "Versioning Impact" as major, although since there is no usage of the D8 version, there really is no API impact. The deal is this would be a major shift in the quality and style of Drupal integration. Its a philosophical shift...