forked from pluginaweek/menu_helper
-
Notifications
You must be signed in to change notification settings - Fork 0
Adds a helper method for generating a menubar
License
legiar/menu_helper
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
= menu_helper +menu_helper+ adds a helper method for generating a menubar. == Resources Wiki * http://wiki.pluginaweek.org/Menu_helper API * http://api.pluginaweek.org/menu_helper Development * http://dev.pluginaweek.org/browser/trunk/plugins/action_pack/menu_helper Source * http://svn.pluginaweek.org/trunk/plugins/action_pack/menu_helper == Description The generation of a menubar's structure can often be a repetitive and unDRY process. A standard using unordered lists is generally followed when creating a menubar. menu_helper attempts to following this standard in addition to automatically adding ids, classes for selected menus, and default urls each menu is linked to (base on various information, such as the name of the menu). == Usage routes.rb: ActionController::Routing::Routes.draw do |map| map.with_options(:controller => 'site') do |site| site.home '', :action => 'index' end map.with_options(:controller => 'about_us') do |about_us| about_us.about_us 'about_us', :action => 'index' about_us.contact 'about_us/contact', :action => 'contact' about_us.who_we_are 'about_us/who_we_are', :action => 'who_we_are' end map.with_options(:controller => 'products') do |products| products.products 'products', :action => 'index' end map.with_options(:controller => 'services') do |services| services.services 'services', :action => 'index' end end _menubar.rhtml: <%= menu_bar do |main| main.menu :home main.menu :products main.menu :services main.menu :about_us do |about_us| about_us.menu :overview, 'Overview', about_us_url about_us.menu :who_we_are about_us.menu :contact, 'Contact Us' end main.menu :search, 'Search!', 'http://www.google.com', :class => 'ir' end %> Output (formatted for sanity): <ul id="menubar"> <li id="home"><a href="http://example.com/">Home</a></li> <li id="products"><a href="http://example.com/products">Products</a></li> <li id="services"><a href="http://example.com/services">Services</a></li> <li class="selected" id="about_us"><a href="http://example.com/about_us">About Us</a> <ul id="about_us_menubar"> <li id="overview"><a href="http://example.com/about_us">Overview</a></li> <li class="selected" id="who_we_are"><a href="http://example.com/about_us/who_we_are">Who We Are</a></li> <li class="last" id="contact"><a href="http://example.com/about_us/contact">Contact Us</a></li> </ul> <li class="search ir" id="search"><a href="http://www.google.com">Search!</a></li> </ul> === Caveat Emptor Remember one of the basic principles of programming: KISS. There's no need to use this plugin if you're writing a very, very simple menubar. The advantages of this helper are consistency, DRYness, and decreased complexity if you have lots of submenus. I wrote this plugin mostly as an educational/experimental piece, so I don't using this in a production application, but rather a prototype. == Testing To test this plugin, the following gems must be installed: * plugin_test_helper[http://wiki.pluginaweek.org/Plugin_test_helper] To run against a specific version of Rails: rake test RAILS_FRAMEWORK_ROOT=/path/to/rails == Dependencies * Rails 2.0 or later
About
Adds a helper method for generating a menubar
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published
Languages
- Ruby 100.0%