CL Components Logo

This module allows you to add a field to any entity to allow editors to associate any content with a CL Component.

Usages

The most common use of this is to implement hook_entity_view_mode_alter so you can render a view mode associated with the component.

function my_module_entity_view_mode_alter(&$view_mode, $entity) {
  // ... after ensuring field exists for entity.
  $component_id = $entity->field_component_selector->component;
  $variant = $entity->field_component_selector->variant;
  // ... after ensuring view mode is valid for entity.
  $view_mode = implode('_', array_filter([$component_id, $variant]));
}

This is a clean way of allowing editors to select different styles for a piece of content at any time.

Note that this example requires you to create the view modes (ex: fancy_cta_animated) for your entities. It also requires you to actually use the component in your entity template (ex: node--article--fancy-cta-animated.html.twig).

Features

Options are configurable

Field options

Inline documentation

Field widget
Inline docs

Dynamic variant support

Variant dropdown 1
Variant dropdown 2

Supporting organizations: 
Development and Maintenance

Project information

Releases