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>
Terug naar het blog overzicht
Ik wil graag weten hoeveel bezoeker ik heb en wat ze doen op mijn site (via Google Analytics). Om dit te doen gebruik ik cookies. De data wordt anoniem opgeslagen en ik respecteer de Do Not Track voorkeuren van uw browser. Wilt u een cookie van mij?