Nilmaros
Nilmaros

Reputation: 21

MYTHEME_preprocess_paragraph__PARAGRAPHTYPE not loading

I am slowly learning D8 while implementing my website, and decided to follow https://www.webwash.net/how-to-create-powerful-container-paragraphs-in-drupal-8/ to start my landing page.

Starting the hook_preprocess section, I assumed this would go in:

THEMES/MYBOOTSTRAPSUBTHEME/MYTHEMENAME.theme

<?php
/**
 * @file
 * Bootstrap sub-theme.
 *
 * Place your custom PHP code in this file.
 */

function MYSUBTHEMENAME_preprocess_paragraph__banner(&$variables) {
    $paragraph = $variables['paragraph'];
    if (!$paragraph->field_image->isEmpty()) {
        $image = $paragraph->field_image->entity->url();
        $variables['attributes']['style'][] = 'background-image: url("' . $image . '");';
        $variables['attributes']['style'][] = 'background-size: cover;';
        $variables['attributes']['style'][] = 'background-position: center center;';
    }
}

I have cleared cache from the Configuration page with no luck. This is built localhost using MAMP (PHP 7.1.6) - if of any use.

I have double checked all the configurations that the tutorial shows and all the names are correct (banner, field_image). I just can't seem to find the issue!

Any suggestions?

Upvotes: 2

Views: 8476

Answers (1)

LarS
LarS

Reputation: 1378

If it is not a typo your themename is not MYBOOTSTRAPSUBTHEME, it is MYTHEMENAME as you said:

THEMES/MYBOOTSTRAPSUBTHEME/MYTHEMENAME.theme

Therefore the function should be called:

function MYTHEMENAME_preprocess_paragraph__banner(&$variables) {
  // If devel module is enabled you may check if it is working
  // by adding some debug output:
  // dpm('debug');
}

Make sure to use lowercase letters for directory- file and function name. After implementing the function do not forget to rebuild cache. It's not necesary to have a twig template file paragraphs-banner.twig, it should work without that too.

Upvotes: 1

Related Questions