Theme functions are deprecated and should be replaced with twig templates. This has been true for a while, but since #3109480: Properly deprecate theme functions for Drupal 10 was committed, we now get a warning:

User deprecated function: Theme functions are deprecated in drupal:8.0.0 and are removed from drupal:10.0.0. Use Twig templates instead of template_preprocess_views_slideshow_slide_counter_widget_render(). See https://www.drupal.org/node/1831138 in Drupal\Core\Theme\Registry->processExtension() (line 498 of core/lib/Drupal/Core/Theme/Registry.php).
Drupal\Core\Theme\Registry->processExtension(Array, 'views_slideshow', 'module', 'views_slideshow', 'modules/contrib/views_slideshow') (Line: 341)

All of the theme functions defined in hook_theme need to be updated.

Comments

douggreen created an issue. See original summary.

neslee canil pinto’s picture

Status: Active » Needs work
bonchak’s picture

Hello, same problem here

User deprecated function: Theme functions are deprecated in drupal:8.0.0 and are removed from drupal:10.0.0. Use Twig templates instead of template_preprocess_views_slideshow_pager_widget_render(). See https://www.drupal.org/node/1831138 in Drupal\Core\Theme\Registry->processExtension() (line 498 of core/lib/Drupal/Core/Theme/Registry.php).
Drupal\Core\Theme\Registry->processExtension(Array, 'views_slideshow', 'module', 'views_slideshow', 'modules/views_slideshow') (Line: 341)
Drupal\Core\Theme\Registry->build() (Line: 240)
Drupal\Core\Theme\Registry->get() (Line: 88)
Drupal\Core\Utility\ThemeRegistry->initializeRegistry() (Line: 69)
Drupal\Core\Utility\ThemeRegistry->__construct('theme_registry:runtime:seven', Object, Object, Array, 1) (Line: 260)
Drupal\Core\Theme\Registry->getRuntime() (Line: 142)
Drupal\Core\Theme\ThemeManager->render('system_config_form', Array) (Line: 431)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 200)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 226)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 573)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 227)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 117)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) (Line: 78)
Symfony\Component\EventDispatcher\LegacyEventDispatcherProxy->dispatch(Object, 'kernel.view') (Line: 163)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 80)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 106)
Drupal\page_cache\StackMiddleware\PageCache->pass(Object, 1, 1) (Line: 85)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 705)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
User deprecated function: Theme functions are deprecated in drupal:8.0.0 and are removed from drupal:10.0.0. Use Twig templates instead of template_preprocess_views_slideshow_controls_widget_render(). See https://www.drupal.org/node/1831138 in Drupal\Core\Theme\Registry->processExtension() (line 498 of core/lib/Drupal/Core/Theme/Registry.php).
Drupal\Core\Theme\Registry->processExtension(Array, 'views_slideshow', 'module', 'views_slideshow', 'modules/views_slideshow') (Line: 341)
Drupal\Core\Theme\Registry->build() (Line: 240)
Drupal\Core\Theme\Registry->get() (Line: 88)
Drupal\Core\Utility\ThemeRegistry->initializeRegistry() (Line: 69)
Drupal\Core\Utility\ThemeRegistry->__construct('theme_registry:runtime:seven', Object, Object, Array, 1) (Line: 260)
Drupal\Core\Theme\Registry->getRuntime() (Line: 142)
Drupal\Core\Theme\ThemeManager->render('system_config_form', Array) (Line: 431)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 200)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 226)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 573)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 227)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 117)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) (Line: 78)
Symfony\Component\EventDispatcher\LegacyEventDispatcherProxy->dispatch(Object, 'kernel.view') (Line: 163)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 80)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 106)
Drupal\page_cache\StackMiddleware\PageCache->pass(Object, 1, 1) (Line: 85)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 705)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
User deprecated function: Theme functions are deprecated in drupal:8.0.0 and are removed from drupal:10.0.0. Use Twig templates instead of template_preprocess_views_slideshow_slide_counter_widget_render(). See https://www.drupal.org/node/1831138 in Drupal\Core\Theme\Registry->processExtension() (line 498 of core/lib/Drupal/Core/Theme/Registry.php).
Drupal\Core\Theme\Registry->processExtension(Array, 'views_slideshow', 'module', 'views_slideshow', 'modules/views_slideshow') (Line: 341)
Drupal\Core\Theme\Registry->build() (Line: 240)
Drupal\Core\Theme\Registry->get() (Line: 88)
Drupal\Core\Utility\ThemeRegistry->initializeRegistry() (Line: 69)
Drupal\Core\Utility\ThemeRegistry->__construct('theme_registry:runtime:seven', Object, Object, Array, 1) (Line: 260)
Drupal\Core\Theme\Registry->getRuntime() (Line: 142)
Drupal\Core\Theme\ThemeManager->render('system_config_form', Array) (Line: 431)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 200)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 226)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 573)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 227)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 117)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) (Line: 78)
Symfony\Component\EventDispatcher\LegacyEventDispatcherProxy->dispatch(Object, 'kernel.view') (Line: 163)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 80)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 106)
Drupal\page_cache\StackMiddleware\PageCache->pass(Object, 1, 1) (Line: 85)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 705)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
douggreen’s picture

Status: Needs work » Needs review
StatusFileSize
new1.23 KB

I think that this is a simple fix. However, I'm not familiar enough with this module to know if this change does theme properly. Patch attached.

Looking at the git history, I think these have just always been wrong. The use of 'function' in hook_theme() existed not for the theme preprocess hook, but for the theme function itself. Theme preprocess hooks don't need to be defined.

douggreen’s picture

Title: Theme functions are deprecated, use twig instead » Preprocess functions aren't defined in hook_theme

Status: Needs review » Needs work

The last submitted patch, 4: views_slideshow-hook_theme-3133436-4.patch, failed testing. View results

douggreen’s picture

Nope, it's not that simple. I get errors with this. We also need to create the missing templates.

douggreen’s picture

Status: Needs work » Needs review
StatusFileSize
new7.18 KB

This should work :)

bonchak’s picture

After applying the patch I've recieved this error ;

Twig\Error\LoaderError: Template "modules/views_slideshow/templates/views-slideshow-slide-counter-widget.html.twig" is not defined. in Twig\Loader\ChainLoader->getCacheKey() (line 29 of modules/views_slideshow/templates/views-view-slideshow.html.twig).
Twig\Environment->getTemplateClass('modules/views_slideshow/templates/views-slideshow-slide-counter-widget.html.twig', NULL) (Line: 139)
Drupal\Core\Template\TwigEnvironment->getTemplateClass('modules/views_slideshow/templates/views-slideshow-slide-counter-widget.html.twig') (Line: 381)
Twig\Environment->loadTemplate('modules/views_slideshow/templates/views-slideshow-slide-counter-widget.html.twig') (Line: 65)
twig_render_template('modules/views_slideshow/templates/views-slideshow-slide-counter-widget.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_slideshow_slide_counter_widget', Array) (Line: 431)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 444)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 200)
Drupal\Core\Render\Renderer->render(Array) (Line: 450)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 93)
__TwigTemplate_a33dcadc165616a057d5c2f9c3731e280227409d5bb93bfed4d4c6faebaa49cc->doDisplay(Array, Array) (Line: 407)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 380)
Twig\Template->display(Array) (Line: 392)
Twig\Template->render(Array) (Line: 65)
twig_render_template('modules/views_slideshow/templates/views-view-slideshow.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view_slideshow', Array) (Line: 431)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 444)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 200)
Drupal\Core\Render\Renderer->render(Array) (Line: 450)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 133)
__TwigTemplate_52a5b1bdeaae4ad253c11e7a368510b26aed7af0b43a0bfa5f0a987df02984bc->doDisplay(Array, Array) (Line: 407)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 380)
Twig\Template->display(Array) (Line: 392)
Twig\Template->render(Array) (Line: 65)
twig_render_template('themes/contrib/d8w3css/templates/views/views-view.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('views_view', Array) (Line: 431)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 444)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 200)
Drupal\Core\Render\Renderer->render(Array) (Line: 450)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 106)
__TwigTemplate_1979a919f0a21e35b1ffd23f758615f7c4b1682bbab2a55da5fd6cd680a7b9c4->block_content(Array, Array) (Line: 184)
Twig\Template->displayBlock('content', Array, Array) (Line: 94)
__TwigTemplate_1979a919f0a21e35b1ffd23f758615f7c4b1682bbab2a55da5fd6cd680a7b9c4->doDisplay(Array, Array) (Line: 407)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 380)
Twig\Template->display(Array) (Line: 392)
Twig\Template->render(Array) (Line: 65)
twig_render_template('themes/contrib/d8w3css/templates/block/block.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('block', Array) (Line: 431)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 444)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 200)
Drupal\Core\Render\Renderer->render(Array) (Line: 450)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 393)
__TwigTemplate_b679882a4ab0abf8c1742e05764754be750d5fb2095dad02c734ec5ee56ffdd4->doDisplay(Array, Array) (Line: 407)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 380)
Twig\Template->display(Array) (Line: 392)
Twig\Template->render(Array) (Line: 65)
twig_render_template('themes/contrib/d8w3css/templates/layout/page.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('page', Array) (Line: 431)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 200)
Drupal\Core\Render\Renderer->render(Array) (Line: 450)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 109)
__TwigTemplate_4aeb21d6d2df88ed8bdc8377178eceba5f1d7213ced0f315ef4ca2efa4d2dff4->doDisplay(Array, Array) (Line: 407)
Twig\Template->displayWithErrorHandling(Array, Array) (Line: 380)
Twig\Template->display(Array) (Line: 392)
Twig\Template->render(Array) (Line: 65)
twig_render_template('themes/contrib/d8w3css/templates/layout/html.html.twig', Array) (Line: 384)
Drupal\Core\Theme\ThemeManager->render('html', Array) (Line: 431)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 200)
Drupal\Core\Render\Renderer->render(Array) (Line: 147)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 573)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 148)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object) (Line: 78)
Symfony\Component\EventDispatcher\LegacyEventDispatcherProxy->dispatch(Object, 'kernel.view') (Line: 163)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 80)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 57)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 106)
Drupal\page_cache\StackMiddleware\PageCache->pass(Object, 1, 1) (Line: 85)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 47)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 52)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 23)
Stack\StackedHttpKernel->handle(Object, 1, 1) (Line: 705)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)

trevorbradley’s picture

#8 working great here without errors!

@bonchak - does that error go away with a drush cr? The views-slideshow-slide-counter-widget.html.twig template file definitely exists in my post-patched module. (Double check if the directory lines up too)

neslee canil pinto’s picture

Status: Needs review » Needs work

Getting the same error has mentioned in #9

bonchak’s picture

@TrevorBradley - just checked the files and "views-slideshow-slide-counter.html.twig" exists however "views-slideshow-slide-counter-widget.html.twig" is missing. I tried to find the file so that I can upload manually but can't find it.

jhnnsbstnbch’s picture

I am using Drupal 9.0.3 and the dev version of this module. I am getting the error in #3 above.

I have not yet applied the patch because, like @bonchak in #12 above, I checked and while I can validate that "views-slideshow-slide-counter.html.twig" exists in the templates directory, the file for which this patch was developed -- "views-slideshow-slide-counter-widget.html.twig" -- is missing from both the regular and dev versions of this module. Thank you.

tjtj’s picture

I get this too in Drupoal 9.0.5
User deprecated function: Theme functions are deprecated in drupal:8.0.0 and are removed from drupal:10.0.0. Use Twig templates instead of template_preprocess_views_slideshow_slide_counter_widget_render(). See https://www.drupal.org/node/1831138 in Drupal\Core\Theme\Registry->processExtension() (line 498 of core/lib/Drupal/Core/Theme/Registry.php).

tjtj’s picture

We need a fix for this please. And please put it into the dev release so we do not have to muck around with patches in Composer.

neslee canil pinto’s picture

Status: Needs work » Needs review

#8 removed the error for me, does this works for others. If so i am ready to commit the patch.

mjpa’s picture

Seems to work for me. Not getting the error mentioned in #9.

r81d3r’s picture

patch #8 works for me.. thanks

neslee canil pinto’s picture

Status: Needs review » Reviewed & tested by the community

Moving to RTBC

neslee canil pinto’s picture

Status: Reviewed & tested by the community » Fixed

Committed to dev branch. Thanks.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.