Getting annotation module menu entries to show up
There seems to be some confusion about the annotation module example in Chapter 2 of the first edition of the book. I have had some angry emails from people who are frustrated. I apologize for not taking an even more step-by-step approach.
Perhaps the first mistake was on the top of page 13, where I wrote
Save your file and visit Administer - Site building - Modules. Your module should how up in the list. How exciting!
I meant to have the reader experience a sense of accomplishment here. Unfortunately, I think a lot of readers went ahead and enabled the annotation module at this point instead of just thinking "Cool! It's in the list of modules!" Wrong! If you enable the module before implementing the menu hook (which we do on the rest of page 13) Drupal will look for the menu hook, not find it, and cache the result internally. Then when readers typed in the menu hook and the settings hook on pages 13 and 14, they got frustrated because when they went to Administer - Site configuration there was no entry for the annotation module. That's because Drupal is using the menus it cached earlier. It didn't help that Drupal changed the title of the page from Settings to Site configuration (the book refers to Administer - Settings - Annotate when it should be Administer - Site configuration - Annotation settings. The URL path remains the same: http://example.com/?q=admin/settings/annotate.
So, if you are going through chapter 2, do not enable the annotation module until after you have added the annotate_menu() function and the annotate_admin_settings() functions to your module and saved the annotate.module file. That way, when you enable the module, Drupal will find the menu hook and add the Administer - Site configuration - Annotation settings entry.
I would insert a note to enable the module in the paragraph just before Figure 2.1.
Again, apologies to those who have been frustrated by this. Don't give up!