Hello again,
after three weeks of intense testing I found the reason - by mere coincidence! It was the very old content type
"newsmodule" which caused the menu manager to break.
It might help to understand that my database originates back to 2006 where this special content type was a valid type. With newer module versions this type was no longer supported, but the database harbored these pages silently ever since. And up to version 1.82 it was no problem at all because the menu manager simply ignored these old types.
A note to the developers: The new menu manager died at line 268 because the new object $tmpc was empty when it approached these specific old pages.
This could well happen too with other uninstalled oder simply deleted modules and thier special page types, like album, cataloger, content alias and others. The moment you uninstall oder delete a module and don't switch back all pages related to this type before deleting the modules, the pages may be invisible but not deleted. (The cataloger module does leave its own page content types in the database, I've tested it.) These pages might remain within the database and slumber there silently.
The page tree in the backend doesn't show them either, but there might be a hierarchy numbering inconsistency. New pages might get a hierarchy number higher than the older without the old and lower page numbers showing up. So a 3.2 immediateley follows the hierarchy number 3, whereas number 3.1 will remain invisible.
An invisible page is neither editable nor deletable. Even worse, all other pages relating to this page are invisible as well, and the parent page won't be deletable at all.
In my case, the older versions introduced an even more severe bug when adding a new page to the tree: A new page was numbered the same way like the old invisible page. So two pages shared the same hierarchy number. No problem for the old menu manager, completely unacceptable for the new one.
I saw two alternatives here: Delete the invisible old page directly in the database oder make it visible again by editing the content type and change it from "newsmodule" to content. The latter showed the page again in the page tree and got the menu manager working properly (
yay at last!!) - but
behold and beware: Another page (even two for me because I used the old module type twice) contained the same hierarchy number!
Correcting that was a pain in the a**. After a lot (and I mean "
a lot") of pushing around both the old and the new pages within the page tree and into other chapters finally solved the hierarchy numbering problem.
How will you find old page content types if they remain invisible within the backend page tree?
You have to do this via phpMyAdmin (or any other mySQL editing software).
The appropriate mySQL command is:
Code: Select all
SELECT * FROM `cms_content` WHERE `type` != 'content' ORDER BY `cms_content`.`type` ASC
whereas 'cms_' has to be replaced by your database table prefix.
A list will show up with all page types that are not "content". page link, link, sectionheader, separator and errorpage are part of the standard types shipped with CMSms, others belong to modules, may they be active or not. You can then decide what to do with them.
Remember: If you choose to delete the pages by hand right in the database, you also have to delete all relating fields within the "cms_content_props" database table too, otherwise they will remain there forever.
Please do this only if you know what you are doing. And backup the database prior to any changes, of course
A request to the developers: If these old content types belong to your core functions or to modules you ship with your base/full version, then please find a way to notice a user within an upgrade process that these old content types still exist and can cause severe problems.
Or find a workaround within the menu manager module, as I did. As for the newsmodule type: I would suggest that you change the content type during upgrade and fix the duplicate hierarchy numbering problem...
Wow. Three weeks for one tiny little and very old issue...
Tired but content
Amendra