Theme functions are deprecated in drupal:8.0.0 and are removed from drupal:10.0.0

Er zijn wat dingen veranderd in de theme functionaliteit van Drupal 10 en voornamelijk dat theme_ functions zijn komen te vervallen. Hiervoor in de plaats komen Twig templates. Het kan zijn dat er wat preprocessing in de theme_ functie werd gedaan dus daar moet een vervanger voor komen. Dit is eenvoudig te doen met template_preprocess_HOOK functies.

Oude situatie:

mymodule.module

function module_theme() {
  return [
    'module_theme_1' => [
      'variables' => [],
    ],
  ];
}

/**
 * @deprecated Theme functions are removed from Drupal:10.0.0.
 */
function theme_module_theme_1($variables) {
  // Do some preprocessing or output stuff.
  return [
    'tag' => [
      '#type' => 'html_tag',
      '#tag' => 'span',
      '#attributes' => [
        'class' => ['class1'],
      ],
      '#value' => $variables['text'],
    ],
  ];
}

Nieuwe situatie:

mymodule.module

function mymodule_theme() {
  return [
    'mymodule_theme_1' => [
      'variables' => [],
    ],
  ];
}

function template_preprocess_mymodule_theme_1(&$variables) {
  // Do some preprocessing if necessary.
  $variables['text'] = 'This is a funky value';
}

mymodule_theme_1.html.twig

<span class="class1">{{ text }}</span>
back_blog