- Issue created by @Katy Swain
- πΊπΈUnited States laboratory.mike
Hi there Katy, I'm glad to explain both what the overall issue is, how I solved it when setting up the module, and will add some instructions on what to do for the ECK content.
Problem
The root issue concerning paths also extends to the names of routes used by certain entity types. For example, the route name for adding a node is "node.add" but for a user its "user.admin_create" . Some entities have bundles, which features into access and the add process, and further, certain entities in contrib modules, like Group, have further considerations beyond that.
IOW, there isn't a universal way to do entity creation.
Solution
To manage this, I set up a plugin system, with the most relevant folder to check out being here:
views_add_button/src/Plugin/views_add_button
The ViewsAddButtonDefault.php file contains the default logic you are observing. It tries its best, but as you saw, it can't cover everything.
Next, I created Node, Taxonomy, and User specific plugins, which handle specifics for each entity type.
There's also a views_add_button_group contrib module for Groups and Group Content.
For ECK
If you're in a position to do so, try creating a custom module, adding an src/Plugin/views_add_button folder, and copying in one of the contrib module's plugins, and modifying it to suit your case. Otherwise, I know ECK's pretty popular and I could add a submodule to support ECK entities. I would just need your help to QA it.
- Assigned to Terry_Kolodiy
- Issue was unassigned.
- Status changed to Needs review
9 months ago 2:00pm 8 April 2024 - πΊπ¦Ukraine Terry_Kolodiy
Hi! I've added a Merge Request with the plugin for ECK entities. Could you please check? Thanks
- πΉπThailand AlfTheCat
@Terry_Kolodiy thanks very much for the patch, it works.
- πΉπThailand AlfTheCat
There is one caveat here, when using ECK, there are different types of bundles for each entity type. The current patch is fine in case there are multiple bundles and users should be presented with their choice of bundle to add.
However, in my case, I need the views add button to point to a specific bundle (there is only one) and also pass on arguments that the EPP β module requires to pre-populate reference fields. Because the views add button present the entity bundle selection dialog, and with only one option in this case, the reference field does not get populated because the query string is lost.
It would be great if we could set a target bundle in the Views add more button settings.
- πΉπThailand AlfTheCat
I can add some more info to this, the bundle type selection interface pops up when the ECK entity type name is the same as the bundle name.
So, if you have an entity type called "Task" and a bundle called "Task" (same machine names), the bundle selection UI will show, regardless of which bundle you specify in the Views Add Button settings, or if there is only one bundle available.