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>