diff --git a/classy_paragraphs.module b/classy_paragraphs.module index 960a523..aae4cba 100644 --- a/classy_paragraphs.module +++ b/classy_paragraphs.module @@ -7,6 +7,7 @@ use Drupal\Core\Routing\RouteMatchInterface; use Drupal\field\FieldConfigInterface; +use Drupal\Core\Template\Attribute; /** * Implements hook_preprocess_HOOK(). @@ -15,6 +16,7 @@ function classy_paragraphs_preprocess_paragraph(&$variables) { //@TODO Implement as service. /** @var \Drupal\paragraphs\Entity\Paragraph $paragraph */ $paragraph = $variables['paragraph']; + $variables['attributes'] = new Attribute(); // Find fields which are referencing classy_paragraphs. $class_fields = []; @@ -33,13 +35,17 @@ function classy_paragraphs_preprocess_paragraph(&$variables) { foreach($class_fields as $class_field) { $field_name = $class_field->get('field_name'); - if (!$paragraph->get($field_name)->isEmpty()) { - //@TODO handle multiple value fields. - $text_classes = $paragraph->get($field_name)->entity->getClasses(); - $classes = explode("\r\n", $text_classes); - if (!empty($classes)) { - $variables['attributes']['class'] = $classes; + + $field = $paragraph->get($field_name); + $classes = $field->referencedEntities(); + + foreach($classes as $class) { + $raw_classes = $class->getClasses(); + $array_classes = explode("\r\n", $raw_classes); + if (!empty($array_classes)) { + $variables['attributes']->addClass($array_classes); + } } } }