README.md 1.6 KB

Demonstrate various Drupal 8 features.

"blog" branch

This contains a solution to the exercise for the entity chapter. The exercise is the following:

  • Create a Blog entity and a BlogType entity as its bundle entity. Blogs are entities created by a User. Various bundles could be a traditional blog, an image gallery and a vlog.
  • Blog items (instances of the Blog entity) should be translatable and revisioned by default.
  • Access control to the Blog entity should be at the entity type level (Blog), not the entity bundle level (BlogType).
  • Both should have a complete CRUD UI: list, display, add/edit, delete
  • Blogs must appear as tabs under the user profile page, with sub-tabs per blog type
  • To better understand what's going on, it is probably better not to use the Drupal console generate commands.

Steps

  1. Create the module and a Blog content entity in it.
  2. Create a BlogType config entity as the bundle entity for Blog, enabling its collection route.
  3. Implement skeletons for add/edit/delete forms and implement a BlogType config entity schema to be able to test config import/export and the delete form
  4. Complete the implementation of the BlogType collection route to show type, name, description, and operations.
  5. Complete the BlogType CRUD by implementing the BlogTypeForm.
  6. Complete the implementation of the Blog collection route to show id, title, author, and operations.
  7. Complete the Blog CRUD by implementing the BlogForm.
  8. Expose a view of the user blogs on their profile as a tab.