drowl_paragraphs_bs-1.x-dev/modules/drowl_paragraphs_bs_type_card/drowl_paragraphs_bs_type_card.module

modules/drowl_paragraphs_bs_type_card/drowl_paragraphs_bs_type_card.module
<?php

/**
 * @file
 * Drowl_paragraphs_bs_type_card module.
 */

use Drupal\Core\Template\Attribute;

/**
 * Prepared variables for paragraph output.
 */
function drowl_paragraphs_bs_type_card_preprocess_paragraph(&$variables) {
  if ($variables['paragraph']->bundle() == 'card') {
    $variables['card_body_attributes'] = new Attribute();
    $variables['button_attributes'] = new Attribute();
    // Determine the card type
    $variables['card_type'] = 'card';
    foreach ($variables['attributes']['class'] as $class) {
      if (isset($variables['attributes']['class']) && str_starts_with($class, 'card--type-')) {
        $variables['card_type'] = str_replace("card--type-","",$class);
      }
    }
    if (isset($variables['attributes']['class'])) {
      foreach ($variables['attributes']['class'] as $class) {
        if ($variables['card_type'] == 'tile' && (str_starts_with($class, 'bg-') || str_starts_with($class, 'backdrop-filter-'))) {
          // Hint: card body == tile overlay.
          $variables['attributes']->removeClass($class);
          $variables['card_body_attributes']->addClass($class);
        }
        elseif (str_starts_with($class, 'btn-')) {
          $variables['attributes']->removeClass($class);
          $variables['button_attributes']->addClass($class);
        }
      }
    }
  }
}

/**
 * Implements hook_theme().
 */
function drowl_paragraphs_bs_type_card_theme($existing, $type, $theme, $path) {
  $templates = $path . '/templates';
  return [
    'paragraph__drowl_paragraphs_bs__card' => [
      'base hook' => 'paragraph',
      'path' => $templates,
    ],
  ];
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc