entitree
Entitree provides a tree structure to content entities in a Drupal site. Along with the structure itself, Entitree provides tools to enable support for entity types as well as an API for accessing the tree structure. Once an entity type is made available, all entities of that type can be added to the tree.
Included Submodules
Entitree Node
Support for the Node (content) entity type is provided in a submodule. This module must be enabled for Node support to be provided.
Entitree Taxonomy Term
Support for the Taxonomy Term entity type is provided in a submodule. This module must be enabled for Taxonomy Term support to be provided.
Entitree Location Rules
Once an entity is added to the tree structure its paths should be managed only by Entitree. Use the included Entitree Location Rules module to generate paths automatically when creating and updating entities (consider this a replacement for Pathauto in the Entitree ecosystem).
Entitree Permissions
Enable and configure the included Entitree Permissions module to define permissions in the context of the tree structure. This is a robust system that supports:
- Cascading permissions per sub-tree: Define a permission and specify if it applies only to a single location in the tree or that location and all of its descendants. Conflicting permissions in descendants will override cascading permissions.
- Define permissions based on any user context: Unlike Drupal core, Entitree provides support for user and role-based permissions out-of-the-box. A plugin type is defined to allow for further extension of this behavior. In the future this should be expanded to support fields on the User entity type.
- Assigned priority to permissions: Any number of permissions can be defined on a location. Every permission is assigned a priority value allowing the administrator to have full control over the order applied when a user's context matches multiple permissions.
Current Limitations
- Multilingual support: Multilingual support is only partially implemented. At this point the data structure is in place, but logic still needs to be completed to leverage the data. This module should be avoided for multilingual projects for now.
Roadmap
- Complete updates to meet Drupal coding standards.
- Add multilingual support.
- Add user property permissions type.