1

I've just taken a live site to CiviCRM 5.69.2 (as well as from Drupal 7 to 10!), and have determined that registrations fail completely with Smarty3 enabled.

Clearly this has passed testing elsewhere, and there must be something with my configuration that is different allowing this error to surface.

Any suggestions on a/ things I can check in case it's something I've caused, and b/ best place for reporting otherwise?

Error:


$Fatal Error Details = array:3 [
  "message" => "undefined extension class 'Smarty_Internal_Runtime_Get_Plugin_Filepath'"
  "code" => null
  "exception" => SmartyException {#7419
    #message: "undefined extension class 'Smarty_Internal_Runtime_Get_Plugin_Filepath'"
    #code: 0
    #file: "/var/www/vhosts/example.org/vendor/civicrm/civicrm-packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_undefined.php"
    #line: 62
    trace: {
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_undefined.php:62 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_extension_handler.php:133 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_data.php:290 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-packages/Smarty/plugins/modifier.date_format.php:11 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_method_loadplugin.php:90 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-packages/smarty3/vendor/smarty/smarty/libs/Smarty.class.php:1065 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php:841 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_compile_private_modifier.php:94 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php:768 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php:1501 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php:565 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templateparser.php:2880 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templateparser.php:3481 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templateparser.php:3573 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_smartytemplatecompiler.php:128 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php:481 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php:402 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_resource_recompiled.php:52 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_template_compiled.php:136 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_template_compiled.php:105 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_template.php:216 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatebase.php:232 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatebase.php:116 { …}
      /var/www/vhosts/example.org/web/sites/default/files/civicrm/templates_c/en_US/70/54/ae/7054aef50ee3601a36396e267f9f56cf3548556e_0.string.{eval var=$smartySingleUseString|smarty:nodefaults}.php:30 {
        content_65aec52c58d215_10826603(Smarty_Internal_Template $_smarty_tpl)
        › ob_start();
        › $_template = new Smarty_Internal_Template('eval:'.smarty_modifier_smarty($_smarty_tpl->tpl_vars['smartySingleUseString']->value,'nodefaults'), $_smarty_tpl->smarty, $_smarty_tpl);echo $_template->fetch();
        › $_block_repeat=false;
      }
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_template_resource_base.php:123 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_template_compiled.php:114 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_template.php:216 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatebase.php:232 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-packages/smarty3/vendor/smarty/smarty/libs/sysplugins/smarty_internal_templatebase.php:116 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-core/CRM/Utils/String.php:1040 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-core/Civi/Token/TokenCompatSubscriber.php:108 { …}
      /var/www/vhosts/example.org/vendor/symfony/event-dispatcher/EventDispatcher.php:220 { …}
      /var/www/vhosts/example.org/vendor/symfony/event-dispatcher/EventDispatcher.php:56 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-core/Civi/Core/CiviEventDispatcher.php:263 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-core/Civi/Token/TokenProcessor.php:397 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-core/Civi/Token/TokenRow.php:327 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-core/CRM/Core/TokenSmarty.php:67 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-core/CRM/Core/BAO/MessageTemplate.php:374 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-core/CRM/Core/BAO/MessageTemplate.php:422 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-core/CRM/Event/BAO/Event.php:1254 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-core/CRM/Event/Form/Registration/Confirm.php:895 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-core/CRM/Core/Form.php:625 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-core/CRM/Core/StateMachine.php:144 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-core/CRM/Core/QuickForm/Action/Next.php:43 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-packages/HTML/QuickForm/Controller.php:203 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-packages/HTML/QuickForm/Page.php:103 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-core/CRM/Core/Controller.php:355 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-core/CRM/Core/Invoke.php:322 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-core/CRM/Core/Invoke.php:69 { …}
      /var/www/vhosts/example.org/vendor/civicrm/civicrm-core/CRM/Core/Invoke.php:36 { …}
      /var/www/vhosts/example.org/web/modules/contrib/civicrm/src/Civicrm.php:88 { …}
      /var/www/vhosts/example.org/web/modules/contrib/civicrm/src/Controller/CivicrmController.php:83 { …}
      Drupal\civicrm\Controller\CivicrmController->main() {}
      /var/www/vhosts/example.org/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php:123 { …}
      /var/www/vhosts/example.org/web/core/lib/Drupal/Core/Render/Renderer.php:627 { …}
      /var/www/vhosts/example.org/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php:124 { …}
      /var/www/vhosts/example.org/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php:97 { …}
      /var/www/vhosts/example.org/vendor/symfony/http-kernel/HttpKernel.php:181 { …}
      /var/www/vhosts/example.org/vendor/symfony/http-kernel/HttpKernel.php:76 { …}
      /var/www/vhosts/example.org/web/core/lib/Drupal/Core/StackMiddleware/Session.php:58 { …}
      /var/www/vhosts/example.org/web/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php:48 { …}
      /var/www/vhosts/example.org/web/core/lib/Drupal/Core/StackMiddleware/ContentLength.php:28 { …}
      /var/www/vhosts/example.org/web/core/modules/big_pipe/src/StackMiddleware/ContentLength.php:32 { …}
      /var/www/vhosts/example.org/web/core/modules/page_cache/src/StackMiddleware/PageCache.php:106 { …}
      /var/www/vhosts/example.org/web/core/modules/page_cache/src/StackMiddleware/PageCache.php:85 { …}
      /var/www/vhosts/example.org/web/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php:48 { …}
      /var/www/vhosts/example.org/web/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php:51 { …}
      /var/www/vhosts/example.org/web/core/lib/Drupal/Core/StackMiddleware/AjaxPageState.php:36 { …}
      /var/www/vhosts/example.org/web/core/lib/Drupal/Core/StackMiddleware/StackedHttpKernel.php:51 { …}
      /var/www/vhosts/example.org/web/core/lib/Drupal/Core/DrupalKernel.php:704 { …}
      /var/www/vhosts/example.org/web/index.php:19 { …}
    }
  }
]

Backtrace:

$backTrace = #0 /var/www/vhosts/example.org/vendor/civicrm/civicrm-core/CRM/Core/Error.php(443): CRM_Core_Error::backtrace("backTrace", TRUE)
#1 /var/www/vhosts/example.org/vendor/civicrm/civicrm-core/CRM/Core/Invoke.php(39): CRM_Core_Error::handleUnhandledException(Object(SmartyException))
#2 /var/www/vhosts/example.org/web/modules/contrib/civicrm/src/Civicrm.php(88): CRM_Core_Invoke::invoke((Array:3))
#3 /var/www/vhosts/example.org/web/modules/contrib/civicrm/src/Controller/CivicrmController.php(83): Drupal\civicrm\Civicrm->invoke((Array:3))
#4 [internal function](): Drupal\civicrm\Controller\CivicrmController->main((Array:3), "")
#5 /var/www/vhosts/example.org/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(123): call_user_func_array((Array:2), (Array:2))
#6 /var/www/vhosts/example.org/web/core/lib/Drupal/Core/Render/Renderer.php(627): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}()
#7 /var/www/vhosts/example.org/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(124): Drupal\Core\Render\Renderer->executeInRenderContext(Object(Drupal\Core\Render\RenderContext), Object(Closure))
#8 /var/www/vhosts/example.org/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(97): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext((Array:2), (Array:2))
#9 /var/www/vhosts/example.org/vendor/symfony/http-kernel/HttpKernel.php(181): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}()
#10 /var/www/vhosts/example.org/vendor/symfony/http-kernel/HttpKernel.php(76): Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object(Symfony\Component\HttpFoundation\Request), 1)
#11 /var/www/vhosts/example.org/web/core/lib/Drupal/Core/StackMiddleware/Session.php(58): Symfony\Component\HttpKernel\HttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#12 /var/www/vhosts/example.org/web/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(48): Drupal\Core\StackMiddleware\Session->handle(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#13 /var/www/vhosts/example.org/web/core/lib/Drupal/Core/StackMiddleware/ContentLength.php(28): Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#14 /var/www/vhosts/example.org/web/core/modules/big_pipe/src/StackMiddleware/ContentLength.php(32): Drupal\Core\StackMiddleware\ContentLength->handle(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#15 /var/www/vhosts/example.org/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(106): Drupal\big_pipe\StackMiddleware\ContentLength->handle(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#16 /var/www/vhosts/example.org/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(85): Drupal\page_cache\StackMiddleware\PageCache->pass(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#17 /var/www/vhosts/example.org/web/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(48): Drupal\page_cache\StackMiddleware\PageCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#18 /var/www/vhosts/example.org/web/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(51): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#19 /var/www/vhosts/example.org/web/core/lib/Drupal/Core/StackMiddleware/AjaxPageState.php(36): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#20 /var/www/vhosts/example.org/web/core/lib/Drupal/Core/StackMiddleware/StackedHttpKernel.php(51): Drupal\Core\StackMiddleware\AjaxPageState->handle(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#21 /var/www/vhosts/example.org/web/core/lib/Drupal/Core/DrupalKernel.php(704): Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, TRUE)
#22 /var/www/vhosts/example.org/web/index.php(19): Drupal\Core\DrupalKernel->handle(Object(Symfony\Component\HttpFoundation\Request))
#23 {main}
1
  • Additionally, and unsure if it's related, I'm also seeing a lot of warnings in the logs along the lines of "Warning: Undefined array key "summary" in include() (line 97 of /var/www/vhosts/example.org/web/sites/default/files/civicrm/templates_c/en_US/%%8E/8EE/8EE20E00%%EventInfo.tpl.php) " My client usually leaves the summary and description fields blank for events, thus these are null in the database and I suspect this is related - but I never observed these errors being thrown prior to 5.69.2 (was previously on 5.65.1).
    – AlexT
    Commented Jan 22 at 20:18

2 Answers 2

4

The stacktrace says it's trying to load a smarty2 plugin. I'd guess your event registration email message template has |date_format in it. Consider updating it to |crmDate if possible, since |date_format is deprecated in php 8 anyway.

2
  • Fantastic - you saved me hours/days there. Thanks!
    – AlexT
    Commented Jan 22 at 22:33
  • Reverting the registration email template to the default solved this problem for me. But registration would still not work. I got errors like: TypeError: Unsupported operand types: float + string in content_65b2344c868ec3_79359798() (line 408 of <drupal root>\vendor\civicrm\civicrm-packages\smarty3\vendor\smarty\smarty\libs\sysplugins\smarty_resource_recompiled.php(52) : eval()'d code). I'm running under Windows. The offending line reads: eval('?>' . $_smarty_tpl->compiler->compileTemplate($_smarty_tpl)); Is there a way of dumping the template? Commented Jan 25 at 10:33
3

Note that 5.69.5 now has a blank text version of the offline event template. We have removed almost all the text versions in 5.70 - if there is no blank version a text version is generated at the point of send from the rendered html. However, people who have customised the text version will not automatically have their customised version updated

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.