Post
by rcarey » Mon Jul 08, 2013 5:57 pm
All by coincidence, I just ran into the same symptoms on a 2.5 installation where I am developing a component. I investigated and found that in #__menu my component and its submenus each had '0' entered in the field component_id. I reset the value in that field for each of my component's items to the id of the component (one can find that id within the table #__extensions). That change was all I needed to get the component to show in the dropdown.
I investigated to discover the cause. I do not know if my experience relates to yours, but I can share what I discovered...
The problem emerged after I used Akeeba to re-install a base installation of 2.5. This wipes the database and rewrites files, but it does not delete directories and files that already existed from the previous installation but are not found within the backup. So when Akeeba finished, even though the database did not have a record of the component that I had installed since the backup file was made, that component's directories remained in the Joomla installation (left over from the previous installation). I suspect that when I did install the component, the installation process saw the component already in the file structure and assumed this extension installation as an upgrade - having no need to set the component_id in the table #__menu. As a result, the menu items were added to the database, but the association of these menu items to a component was left at '0' and not set to the extension's id.
To test my theory, I repeated the installation, but this time after the Akeeba backup, I removed the component's directories and its language files. Then I installed the component, and this time the component appeared in the menu.
The lessons here: [1] Refreshing a site with Akeeba does not remove files that had been added since the backup was made. [2] When a component is newly installed into a site that already has a directory structure for this component, the entries for this component in the table #__menu will not be associated with the newly installed extension. If this problem emerges, manually change the component_id for the affected rows in #__menu.
Randy Carey -- as of 2023 I'm mostly retired in web development, but still engaged with a few Joomla projects through
Careytech Studios http://careytech.com custom development for tailored or value-added web solutions