# File app/controllers/application.rb, line 65
  def generate_menu
    @menu = MenuTree.new
    @menu.add( _('Conference listing'),
               url_for(:controller => '/conferences', :action => 'list') )

    if @user.nil?
      @menu.add(_('Log in'),
                url_for(:controller => '/people', :action => 'login'))
      @menu.add(_('New account'),
                url_for(:controller => '/people', :action => 'new'))
    else
      personal = MenuTree.new
      personal.add(_('Personal information'),
                   url_for(:controller => '/people', :action => 'personal'))
      personal.add(_('Change password'),
                   url_for(:controller => '/people', :action => 'password'))
      @user.can_submit_proposals_now? and
        personal.add(_('My proposals'),
                     url_for(:controller=>'/people', :action => 'proposals')) 
      @user.conferences.size > 0 and
        personal.add(_('Invite a friend'),
                     url_for(:controller=>'/people', :action => 'invite'))

      @menu.add(_('My account'),
                url_for(:controller => '/people', :action => 'account'),
                personal)

      @user.admin_tasks.each do |task|
        begin
          control = "#{task.sys_name.camelcase}Controller".constantize
          menu = (control.constants.include?('Menu') ? 
                  control::Menu : []).map do |elem|
            MenuItem.new(elem[0], 
                         url_for(:controller => task.sys_name, :action => elem[1]))
          end
        rescue NameError
          # Probably caused by an unimplemented controller?
          menu = MenuItem.new(_'-*- Unimplemented')
        end

        @menu.add(Translation.for(task.qualified_name),
                  nil, MenuTree.new(menu))
      end
    end
  end