ianhg:
Brilliant that seems to have worked for me Zencart 1.5.8 Bootstrap V3.5.0 and PHP7.4.. Thanks you
That works for you on Zencart 1.5.8? I'm trying to upgrade from 3.9.3 on zencart 1.5.5, but running into the usual language defines problem. The 3.9.6 release, and the github repo @mc12345678 linked to, contain the old fashioned languages/english/sitemapxml.php file format, but I believe 1.5.8 requires the new lang.sitemapxml.php style with array definitions to be loaded by $languageLoader. I'm attempting a manual conversion, but some bumps in the road, e.g. SITEMAPXML_SITEMAPINDEX_HTTP_LINK is defined and then used in the same file, so you can't define it in an array and use it later in that same array, the way you could when they were define() statements.
Also the menu item seems to have dropped off my Tools menu, apparently my admin_menus database row has page_name 'BOX_TOOLS_SITEMAPXML' and this constant is no longer defined. My old version was zen-cart-sitemap-xml 3.9.3, looks like I'll have to fix up the database menu entries manually to fit the new language define names. I can see that one can invoke the admin/index.php?cmd=sitemapxml&action=install by typing it into the browser address bar to trigger it, but how is it supposed to run otherwise? The 'Install' section in README.md just talks about going to Tools->Sitemap XML which won't appear without the admin_pages / admin_menus database rows.
I've run into this broken admin menu language key problem a few times over the years. Anyone else think it would be helpful to add an else block in admin_access.php zen_get_admin_pages() where it tests "if (defined($row['main_page']) && defined($row['page_name'])) {" so it could log which one was not defined when it fails?