Converting hard-coded menus to using the Menu module I have a site built in Drupal 7 with the navigation hard-coded in template.tpl.php. How do I go about switching this over to use the menu module instead?  
I've already have the menu recreated in the site's main menu. How do I make my theme display the Drupal menu rather than my hard-coded one? 
Is it correct to copy my current theme, create a new theme from that, swap out the hard-coded menu with some PHP code (where do I get that?), adjust the styles, and then activate the new theme? 


One thing particular to my theme is I have menu drop-downs (secondary menus) that display when you mouseover the primary-level nav using JavaScript image swaps. I would have to recreate this menu in CSS.
You only need to create a new theme if the site in question is in production and you are not able to set up a development version of the site make your changes to the existing theme. In that case, you will want to create a copy of your theme with a different theme name and make sure to update the name of your MYTHEME.info file as well as any function names in your theme's template.php file.

Whether or not you do the above, the rest of the process should be the same either way.


Create a backup of the template file where the menu is hardcoded.
Create a block region where the menu currently is. There are two parts to this step: First you will need to add the following line to the MYTHEME.info file to let it know that the region exists:

regions[menu] = Menu


You'll want to make sure that there is not already a region with the same machine name. If there is, you may want to change it to something like:

regions[menu_top] = Top Menu


Next, you'll need to replace the hard-coded HTML for the menu with the code to display the region, something like:

&lt;?php if ($menu): ?&gt;
&lt;?php print $menu ?&gt;
&lt;?php endif; ?&gt;

Clear caches. This forces the theme registry to be rebuilt and your new region will be show up.
Add the menu block to the newly created region. Visit /admin/structure/blocks and find the block that is automatically created for the menu that you have recreated using Drupal's menu system and drag it into the "Menu" region that you just created.
Superfish. This is one of the better drop-down menu solutions, IMO. You'll want to follow the module instructions for getting it set up. This module creates additional blocks that you can assign your menu to. This will alter the previous step because you will add the superfish block and then assign the menu in the superfish block settings.
Profit!