Menu not working in PHP 8+
Posted: Wed Oct 26, 2022 11:45 am
Hi,
When upgrading my server to PHP 8.1 my menu is suddenly not working. Can anyone guide me/help me?
Version of CMSMS: CMS Made Simple™ 2.2.16 “Truro”
PHP Version 8.1.10
Best, David
----
The error I get:
Fatal error: Uncaught Error: Call to undefined function each() in /customers/8/0/b/gladsaxekirkegaard.dk/httpd.www/modules/MenuManager/MenuManager.module.php:111 Stack trace: #0 /customers/8/0/b/gladsaxekirkegaard.dk/httpd.www/modules/MenuManager/action.default.php(183): MenuManager->GetChildNodes(Object(cms_content_tree), Array, Object(CmsApp), 1, 0, Array, 1, Array, 1) #1 /customers/8/0/b/gladsaxekirkegaard.dk/httpd.www/lib/classes/class.CMSModule.php(1403): include('/customers/8/0/...') #2 /customers/8/0/b/gladsaxekirkegaard.dk/httpd.www/lib/classes/class.CMSModule.php(1479): CMSModule->DoAction('default', 'md365e', Array, '15') #3 /customers/8/0/b/gladsaxekirkegaard.dk/httpd.www/lib/module.functions.php(106): CMSModule->DoActionBase('default', 'md365e', Array, '15', Object(CMS_Smarty_Template)) #4 /customers/8/0/b/gladsaxekirkegaard.dk/httpd.www/lib/classes/class.CMSModule.php(253): cms_module_plugin(Array, Object(CMS_Smarty_Template)) #5 /customers/8/0/b/gladsaxekirkegaard.dk/httpd.www/tmp/templates_c/70e60997609f3eba38ab7b26b669ccfd1b81b07a_0.tpl_body.4.php(48): CMSModule::function_plugin(Array, Object(CMS_Smarty_Template)) #6 /customers/8/0/b/gladsaxekirkegaard.dk/httpd.www/lib/smarty/sysplugins/smarty_template_resource_base.php(128): content_63591a1e180384_59376018(Object(CMS_Smarty_Template)) #7 /customers/8/0/b/gladsaxekirkegaard.dk/httpd.www/lib/smarty/sysplugins/smarty_template_compiled.php(172): Smarty_Template_Resource_Base->getRenderedTemplateCode(Object(CMS_Smarty_Template)) #8 /customers/8/0/b/gladsaxekirkegaard.dk/httpd.www/lib/smarty/sysplugins/smarty_internal_template.php(206): Smarty_Template_Compiled->render(Object(CMS_Smarty_Template)) #9 /customers/8/0/b/gladsaxekirkegaard.dk/httpd.www/lib/smarty/sysplugins/smarty_internal_templatebase.php(216): Smarty_Internal_Template->render(false, 0) #10 /customers/8/0/b/gladsaxekirkegaard.dk/httpd.www/lib/smarty/sysplugins/smarty_internal_templatebase.php(107): Smarty_Internal_TemplateBase->_execute(Object(CMS_Smarty_Template), 'p15', NULL, NULL, 0) #11 /customers/8/0/b/gladsaxekirkegaard.dk/httpd.www/lib/classes/internal/class.CMS_Smarty_Template.php(20): Smarty_Internal_TemplateBase->fetch(NULL, 'p15', NULL, NULL) #12 /customers/8/0/b/gladsaxekirkegaard.dk/httpd.www/index.php(160): CMS_Smarty_Template->fetch() #13 {main} thrown in /customers/8/0/b/gladsaxekirkegaard.dk/httpd.www/modules/MenuManager/MenuManager.module.php on line 111
-----
My template:
{process_pagedata}<!DOCTYPE html>
<!--[if lt IE 7]> <__html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <__html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <__html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <__html class="no-js"> <!--<![endif]-->
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>{title} - {sitename}</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
{metadata}
{cms_stylesheet}
{literal}
<__script__ src="js/vendor/modernizr-2.6.2.min.js"></__script>
<__script__ src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></__script>
<__script__ src="js/plugins.js"></__script>
<__script__ src="js/main.js"></__script>
{/literal}
</head>
</__body>
<!--[if lt IE 7]>
<p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redi ... ">activate Google Chrome Frame</a> to improve your experience.</p>
<![endif]-->
<!-- Content -->
<header>
<div class="container">
<div id="logo">
<a href="/">Gladsaxe Kirkegård</a>
</div>
<div class="lang-search">
<div class="search">
{search resultpage="sogeresultat"}
</div>
</div>
<div class="clear"></div>
</div>
<nav id="nav">
<div class="container">
{menu start_level="1" number_of_levels="3"}
<div class="clear"></div>
</div>
</nav>
</header><!-- END header -->
<div class="container">
<div class="frontpage-slider">
{Showtime2 show='1'}
</div>
<div class="intro-text">
<h2>{title}</h2>
{content}
</div>
<div class="clear"></div>
</div><!-- END container -->
<footer>
<div class="container">
<div class="col-left">
{global_content name='footer'}
</div>
<div class="col-right">
<p><a href="/sitemap">Sitemap</a></p>
</div>
<div class="clear"></div>
</div>
</footer><!-- END footer -->
<!-- Google Analytics -->
{global_content name='analytics'}
<__body>
</__html>
When upgrading my server to PHP 8.1 my menu is suddenly not working. Can anyone guide me/help me?
Version of CMSMS: CMS Made Simple™ 2.2.16 “Truro”
PHP Version 8.1.10
Best, David
----
The error I get:
Fatal error: Uncaught Error: Call to undefined function each() in /customers/8/0/b/gladsaxekirkegaard.dk/httpd.www/modules/MenuManager/MenuManager.module.php:111 Stack trace: #0 /customers/8/0/b/gladsaxekirkegaard.dk/httpd.www/modules/MenuManager/action.default.php(183): MenuManager->GetChildNodes(Object(cms_content_tree), Array, Object(CmsApp), 1, 0, Array, 1, Array, 1) #1 /customers/8/0/b/gladsaxekirkegaard.dk/httpd.www/lib/classes/class.CMSModule.php(1403): include('/customers/8/0/...') #2 /customers/8/0/b/gladsaxekirkegaard.dk/httpd.www/lib/classes/class.CMSModule.php(1479): CMSModule->DoAction('default', 'md365e', Array, '15') #3 /customers/8/0/b/gladsaxekirkegaard.dk/httpd.www/lib/module.functions.php(106): CMSModule->DoActionBase('default', 'md365e', Array, '15', Object(CMS_Smarty_Template)) #4 /customers/8/0/b/gladsaxekirkegaard.dk/httpd.www/lib/classes/class.CMSModule.php(253): cms_module_plugin(Array, Object(CMS_Smarty_Template)) #5 /customers/8/0/b/gladsaxekirkegaard.dk/httpd.www/tmp/templates_c/70e60997609f3eba38ab7b26b669ccfd1b81b07a_0.tpl_body.4.php(48): CMSModule::function_plugin(Array, Object(CMS_Smarty_Template)) #6 /customers/8/0/b/gladsaxekirkegaard.dk/httpd.www/lib/smarty/sysplugins/smarty_template_resource_base.php(128): content_63591a1e180384_59376018(Object(CMS_Smarty_Template)) #7 /customers/8/0/b/gladsaxekirkegaard.dk/httpd.www/lib/smarty/sysplugins/smarty_template_compiled.php(172): Smarty_Template_Resource_Base->getRenderedTemplateCode(Object(CMS_Smarty_Template)) #8 /customers/8/0/b/gladsaxekirkegaard.dk/httpd.www/lib/smarty/sysplugins/smarty_internal_template.php(206): Smarty_Template_Compiled->render(Object(CMS_Smarty_Template)) #9 /customers/8/0/b/gladsaxekirkegaard.dk/httpd.www/lib/smarty/sysplugins/smarty_internal_templatebase.php(216): Smarty_Internal_Template->render(false, 0) #10 /customers/8/0/b/gladsaxekirkegaard.dk/httpd.www/lib/smarty/sysplugins/smarty_internal_templatebase.php(107): Smarty_Internal_TemplateBase->_execute(Object(CMS_Smarty_Template), 'p15', NULL, NULL, 0) #11 /customers/8/0/b/gladsaxekirkegaard.dk/httpd.www/lib/classes/internal/class.CMS_Smarty_Template.php(20): Smarty_Internal_TemplateBase->fetch(NULL, 'p15', NULL, NULL) #12 /customers/8/0/b/gladsaxekirkegaard.dk/httpd.www/index.php(160): CMS_Smarty_Template->fetch() #13 {main} thrown in /customers/8/0/b/gladsaxekirkegaard.dk/httpd.www/modules/MenuManager/MenuManager.module.php on line 111
-----
My template:
{process_pagedata}<!DOCTYPE html>
<!--[if lt IE 7]> <__html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]> <__html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]> <__html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <__html class="no-js"> <!--<![endif]-->
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>{title} - {sitename}</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
{metadata}
{cms_stylesheet}
{literal}
<__script__ src="js/vendor/modernizr-2.6.2.min.js"></__script>
<__script__ src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></__script>
<__script__ src="js/plugins.js"></__script>
<__script__ src="js/main.js"></__script>
{/literal}
</head>
</__body>
<!--[if lt IE 7]>
<p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redi ... ">activate Google Chrome Frame</a> to improve your experience.</p>
<![endif]-->
<!-- Content -->
<header>
<div class="container">
<div id="logo">
<a href="/">Gladsaxe Kirkegård</a>
</div>
<div class="lang-search">
<div class="search">
{search resultpage="sogeresultat"}
</div>
</div>
<div class="clear"></div>
</div>
<nav id="nav">
<div class="container">
{menu start_level="1" number_of_levels="3"}
<div class="clear"></div>
</div>
</nav>
</header><!-- END header -->
<div class="container">
<div class="frontpage-slider">
{Showtime2 show='1'}
</div>
<div class="intro-text">
<h2>{title}</h2>
{content}
</div>
<div class="clear"></div>
</div><!-- END container -->
<footer>
<div class="container">
<div class="col-left">
{global_content name='footer'}
</div>
<div class="col-right">
<p><a href="/sitemap">Sitemap</a></p>
</div>
<div class="clear"></div>
</div>
</footer><!-- END footer -->
<!-- Google Analytics -->
{global_content name='analytics'}
<__body>
</__html>