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>