File "om/Navigation/Page/Uri.php" does not exist

Post-upgrade (via Installatron, Omeka v2.8), I’m unable to access the settings at /admin/appearance/edit-navigation. This seems to only be affecting a single Omeka site on this particular server, but not the rest (which were also upgraded at the same time).

Zend_Exception: File "om/Navigation/Page/Uri.php" does not exist or class "om_Navigation_Page_Uri" was not found in the file in [/path/to/]application/libraries/Zend/Loader.php:87
Stack trace:
#0 [/path/to/]application/libraries/Zend/Navigation/Page.php(241): Zend_Loader::loadClass('om_Navigation_P...')
#1 [/path/to/]application/libraries/Omeka/Navigation.php(453): Zend_Navigation_Page::factory(Array)
#2 [/path/to/]application/libraries/Omeka/Navigation.php(69): Omeka_Navigation->_normalizePageRecursive(Array)
#3 [/path/to/]application/libraries/Zend/Navigation/Container.php(172): Omeka_Navigation->addPage(Array)
#4 [/path/to/]application/libraries/Zend/Navigation/Container.php(187): Zend_Navigation_Container->addPages(Array)
#5 [/path/to/]application/libraries/Omeka/Navigation.php(48): Zend_Navigation_Container->setPages(Array)
#6 [/path/to/]application/forms/Navigation.php(32): Omeka_Navigation->loadAsOption('public_navigati...')
#7 [/path/to/]application/libraries/Zend/Form.php(239): Omeka_Form_Navigation->init()
#8 [/path/to/]application/controllers/AppearanceController.php(59): Zend_Form->__construct()
#9 [/path/to/]application/libraries/Zend/Controller/Action.php(516): AppearanceController->editNavigationAction()
#10 [/path/to/]application/libraries/Zend/Controller/Dispatcher/Standard.php(308): Zend_Controller_Action->dispatch('editNavigationA...')
#11 [/path/to/]application/libraries/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#12 [/path/to/]application/libraries/Zend/Application/Bootstrap/Bootstrap.php(105): Zend_Controller_Front->dispatch()
#13 [/path/to/]application/libraries/Zend/Application.php(384): Zend_Application_Bootstrap_Bootstrap->run()
#14 [/path/to/]application/libraries/Omeka/Application.php(73): Zend_Application->run()
#15 [/path/to/]admin/index.php(28): Omeka_Application->run()
#16 {main}

Well that’s a strange class name… don’t know where the “om_” is coming from there.

It’s odd that it would be associated with the upgrade as we didn’t really touch the navigation at all in 2.8. I wonder if it’s possible that you were having this issue before but just hadn’t noticed?

My best guess is that it would be some bad data in the stored navigation, the public_navigation_main option.

I thought that was strange also! The prefixed class name is all over public_navigation_main. Here’s an example.

[{"uid":"\/items\/browse","can_delete":false,"type":"om_Navigation_Page_Uri","label":"Browse Items","fragment":null,"id":null,"class":null,"title":null,"target":null,"accesskey":null,"rel":[],"rev":[],"customHtmlAttribs":[],"order":1,"resource":null,"privilege":null,"active":false,"visible":true,"pages":[],"uri":"\/items\/browse"}

I removed om_ from all instances but am still getting the same error (more or less):

Zend_Exception: File "Navigation/Page/Uri.php" does not exist or class "Navigation_Page_Uri" was not found in the file in /home/curates3/historicmt.org/application/libraries/Zend/Loader.php:87

They would be “Zend_Navigation” etc., normally.

Just deleting the option should also work (but will erase any custom navigation settings you had).

Ah, ok. “Zend_Navigation_Page_Uri” did the trick. Thanks!

For what it’s worth “om_” is the database prefix. Not sure how that would end up in navigation settings, but if I figure it out, I’ll file a bug (or if it’s something I did, which seems as likely as anything, fix a bug)