Instead of calling the function every time the entire controller (or all controllers) is loaded, it's better practice to just call the function when the element itself is loaded. This allows you much more flexibility moving forward. Eg, maybe the log-in screen doesn't need the menu - or maybe you eventually add an admin tool that has a different menu...etc etc.

Side note: to be a little more proper, you can use $this->Html->url() instead of hard-coding the URLs to the actions.

Side note: Some of this code might seem like adding extra code when you don't "need" it, but by breaking things up into their correct MVC spot, your code will be much cleaner, more flexible/upgradable...etc etc etc. Getting into a habit of doing things like this will make your life MUCH easier when things start to get even slightly more complicated. (And in all reality, the code above adds a few lines, but as far as complexity is concerned, I think it's easier to understand than having a query in the AppController that loads variables for an element(s). /endrant