Drupal 8 Entity Construction Kit (ECK) Module

By shane
Wed, 2019-08-28 20:35
comments
Daily Dose of Drupal Episode #224

Share with Others

The Drupal 8 Entity Construction Kit (ECK) Module allows you to use the Drupal admin interface to build custom entity types. Sometimes you need additional data structures in your Drupal site and it doesn’t make sense to create it as a content type, this is where the ECK module comes in. Using it, you can create your custom entity data structures in Drupal 8 and add fields to them, similarly to how you build out content types.

These custom entity types can be themed and styled similarly to content types, but there are some differences. The general rule of thumb I recommend following is to think if you want the data to be displayed as a page that the website visitor will view. If you want a website visitor to access that information at a specific URL and you may want to add things such as comments, metatags, or more to this information, then a content type makes sense. If you don’t want a website visitor to access this information on it’s own page, and instead are going to use this information as more backend data or information that will feed into a page (but not require its own page), then ECK is the perfect fit.

Make sure you have downloaded and installed the ECK module. Once installed, click on the Configure link or go to Structure > ECK Entity Types.

ECK Module Install

The ECK module allows you to define different entity types. These are similar to the way you define content types, but at a slightly higher level. When you create a content type, you are technically creating a bundle within the node entity type. In the case of ECK, you are defining your own Entity type that may or may not have bundles within it.

Click on the Add entity type button.

ECK Add Entity Type

In this example, we will be creating a new entity to keep track of important statistics. We will use the label Statistic and check all the available Base Fields. You can use whatever Label you would like and the base fields are all optional. I would highly recommend adding a Title field though.

Once finished, click the Create entity type button.

ECK Add Stat Entity Type

Your new Entity will now be displayed in the Entity Types list.

ECK Entity Type List

Click the Add bundle button to add a new bundle to this entity type. In our example, we will only create one bundle. The bundle will be called Number Stat and we will use it to track numeric statistics. Once you have your bundle information filled out, click the Save bundle button.

ECK Add Entity Bundle

The new bundle is now listed on the Statistic bundles listing page.

ECK Bundles List

We could create additional bundles if we had different types of statistics. Similar to how you can have different content types in Drupal 8. In this case, we will stick with just the one bundle and click on the Manage fields button.

Here you can add fields just like you add fields to a content type. In this case, just add a decimal number field called Statistic.

ECK Add Field

You can now go back to the ECK Entity Types admin page and click the Add content button on your Statistic entity type. Go ahead and fill out the form to add a few stats. Once you create some stats, you can go to the ECK Entity Types admin page and select the Content list option from the dropdown button. This will list all the entities for that entity type.

ECK Content

Now that you have the data stored on your site you can use Views or entity reference fields to display or reference this content throughout your site.

The ECK Module has a number of permissions available. These allow you to decide which roles can administer your ECK entities, bundles, and types. Typically you will give all of these roles to only your administrative users. However, the module provides flexibility if you have more complicated use cases.

ECK Permissions

You now know how to create custom entity types using the ECK module. Now go out and build all your entity data structures!