164 Modules match your search

Extend and customize Drupal functionality with contributed modules. If a module doesn't quite do what you want it to do, if you find a bug or have a suggestion, then join forces and help the module maintainer. Or, share your own by starting a new module.


Module description

The link module provides a standard custom content field for links. With this module, links can be easily added to any content types and profiles and include advanced validating and different ways of storing internal or external links and URLs. It also supports additional link text title, site wide tokens for titles and title attributes, target attributes, css class attribution, static repeating values, input conversion, and many more.

Requirements / Dependencies

  1. Drupal 6: Custom content module (CCK)
  2. Drupal 7: Fields API is provided already by core [no dependencies].
  3. Drupal 8: Link module is in core now. No module installation needed. Yay! Don't forget to activate it. It's deactivated by default.

INFO Since some misleading user reports we need to clarify here - Link module is NOT about to add links to any menus or the navigation nor primary/secondary menu. This can be done with default menu module (part of Drupal core). The Link module provides an additional custom field for storing and validating links to be added with any content type, which means another input block additional to your text-body, title, image and any other input you can make on new content creation.


Menu attributes

This simple module allows you to specify some additional attributes for menu items such as id, name, class, style, and rel.

You should use this module when

  • You want to "nofollow" certain menu items to sculpt the flow of PageRank through your site
  • You want to give a menu item an ID so you can easily select it using jQuery
  • You want to add additional classes or styles to a menu item

The module currently allows you to set the following attributes for each menu item:


Nice Menus


Nice Menus enables drop-down/right/left expandable menus. It uses only CSS for most browsers, with minimal Javascript for IE6. (Version 2 uses the Superfish jQuery plugin for all browsers, with an option to disable JS, and falls back to CSS-only for browsers that can handle it.)

Three styles/types of menus are currently possible: horizontal, menus drop down; vertical, menus fly to the left; vertical, menus fly to the right. There is a handbook page that provides a list of sites that use Nice menus.

Nice Menus creates blocks that may be associated with any existing site menu which can be placed wherever normal blocks can be placed in a theme. For themers, it is also possible to theme a menu as a Nice Menu directly by using the provided theme functions so a block is not necessary. A specific theme function for the Primary Links menu is available. The theme functions also allow a developer to pass in a custom menu tree of their making (i.e. not using a Drupal menu.) There is more information on how to use theme functions in the documentation.


Special menu items

A menu with some "no link" element

Special menu items is a Drupal module that provides placeholder and separator menu items.

A placeholder is a menu item which is not a link. It is useful with dynamic drop down menus where we want to have a parent menu item which is not linking to a page but just acting as a parent grouping some menu items below it.

A separator menu item is something like "-------" which is not linking anywhere but merely a mean to structure menus and "separate" menu items visually.

Menu item container provide similar functionality.

Shane Thomas made a video about special menu item.


  • User can create a new menu item and place either "<nolink>" or "<separator>" to the Path field, without quotes.
  • "<nolink>" item will be rendered similar to a normal menu link item but there will be no link just the title.
  • You can change HTML tag used for menu item
  • "<separator>" item will be rendered to an item which is no link and by default title will be "-------".
  • Breadcrumb of "<nolink>" will be rendered same as "<nolink>" menu item.
  • CSS class "nolink" is added to "nolink" menu item.
  • CSS class "separator" is added to "separator" menu item.


Responsive Menus

Example menu using simple style


Responsify your menus! Just give me a CSS selector of your menu and I will make it mobile friendly (when the time is right).

Technically you could set this to affect any element on the page... e.g. collapse a sidebar or content area at a certain screen width.
(Using 'simple' style).


  • Choose from different responsive menu styles.
  • Configure any amount of menus to be responsified (simple or codrops' multi style).
  • Configure at which screen width they should be handled.
  • Include / exclude admin pages. (more options with Context)
  • Disable other mouse events.
  • Remove other classes/IDs.
  • Context module integration.
  • Easily theme-able.

Included Responsive Menu styles:

  1. (1st screenshot) 'Simple', a lightweight style.
  2. (2nd screenshot) codrops' Responsive Multi-Level Menu*
  3. (3rd screenshot) MeanMenu*
  4. (4th screenshot) Sidr*


TB Mega Menu

TB Mega Menu on free responsive theme TB Sirate

TB Mega Menu allows you to create a mega menu with an innovative back-end user interface and synchronized with Drupal core menu.

We strive for more improvement each release, and your feedback on this module is extremely important to us.


Colorbox Node

Gives the user the ability to display ANY page inside a colorbox modal without the header and footer.


Share Buttons by AddToAny

AddToAny Logo

Share buttons for Drupal including AddToAny's universal sharing button, Facebook, Twitter, Google+, Pinterest, WhatsApp and many more.

Large vector share buttons use AddToAny SVG sharing icons. AddToAny vector icons load efficiently, are mathematically precise, scalable to any size, and stunning on High-PPI screens such as Retina and Retina HD displays.

Share buttons

  • Universal sharing button
  • Modern SVG sharing buttons
  • Traditional PNG sharing buttons
  • Elegant Drupal integration
  • AJAX support
  • Display on articles
  • Display on article teasers
  • Display on pages
  • Display in blocks
  • Display in custom nodes



Path Breadcrumbs

Settings form

This module is a solution for all problems with the breadcrumbs on your site!

Path Breadcrumbs module helps you to create breadcrumbs for any page with any selection rules and load any entity from the URL!


  • Breadcrumbs navigation may be added to any kind of page: static (example: node/1) or dynamic (example: node/%nid).
  • You can load contexts from URL and use it like tokens for breadcrumb path or title.
  • You can use selection rules for every breadcrumbs navigation.
  • Module supports ALL tokens from Entity tokens module (part of Entity module).
  • Module provides magic token "pb-join" for taxonomy hierarchy (1) and complete menu trail (2).
  • You can import/export breadcrumbs (supports single operations, Features and Ctools bulk export).
  • Breadcrumbs can be cloned to save you time while building navigation.
  • Module provides rich snippets support for breadcrumbs (RDFa and Microdata).
  • Module provides first/last/odd/even classes to every breadcrumb link.
  • You can change breadcrumbs delimiter.
  • Breadcrumbs could be hidden if they contain only one element.
  • You can disable breadcrumbs and enable them later.
  • All breadcrumb titles are translatable.
  • Ctools API & Path Breadcrumbs API


Menu Trail By Path

Menu Trail By Path sets the active-trail on menu items according to the current url.

For example if you are at yoursite.com/blog/category1/article1
Menu Items with these paths will get the active-trail class on them and expand accordingly.


This is particularly useful if you want a lot of nodes to appear as children of certain nodes / taxonomy term / views / referenced nodes / etc, but do not want to add them all to the menu. eg. hundreds of blog articles.

Menu Trail By Path is best used in conjunction with Pathauto.

This module is similar to Menutrails (D6) and Menu Position (D7), except no configuration is needed. It uses the path URL to determine the active-trail instead of setting rules for each node type. Theoretically, it also works for non-node pages such as taxonomy term and views. Just enable the module to see the results.

7.x-2.x branch

7.x-2.x branch is completely rewritten. It should be compatible with any menu, including menu_blocks.

Can also handles breadcrumb by path.

6.x-1.x branch

NOTE: The 6.x-1.x branch is no longer supported and will not receive further development.


Read More Control

A module to control when the teaser Read More link appears in Drupal 7.

There is no mechanism in core to decide if the read more link should appear. This means that this link will always show no matter if there is additional content to display. This module tries to overcome this issue by allowing administrators to determine how to handle this link in relation to both the content type and individual fields.

The module allows you to add Read more links to other supported view modes (RSS feed, Search results, etc) or even other supported entity types. Particularly useful if you use panels or views and either programmatically add additional view modes or use other contrib modules to provide these.


Menu Icons

This module allows you to upload an image in the menu-item's configuration form.

After uploading the image, the icon data will be added to the menu link's
options array.

When a menu link is goes through the theme layer, it will receive an extra
class which by default is used to attach the images as a background image to the
corresponding menu item. These class names are also compatible with Nice Menu's.


Module Object Oriented Programming API

What is it for?

This module allows you to write modules in pure OOP syntax. It becomes handy when you need some kind of "aspects" to inweave into the main functionality of your module. Moopapi does it by Decorator pattern. Currently we have these types of decorators implemented:
- Logger: allows to log every method calling together with all parameters passed. A mighty tool for development and debugging in some circumstances.
Used by: BOTCHA (spam protection without CAPTCHA) - its use case is that while developing Selenium-tests for its JavaScript there is no chance to use usual development tools such as XDebug, because Selenium-tests are intended to be launched via command-line interface. Moopapi logger helps BOTCHA to keep debugged.
- Cacher (planned, see #1870060: Create new decorator: Cacher): The idea is to separate a logic of an application and tricks to make it work faster. It could be done by Cacher "aspect" which includes all speed optimizations while your application contains pure business logic.
- Adapter: Abstraction layer for Drupal major version. The concept is thoroughly described here: #1932290: Forwardport doctrine - a proposed solution for Drupal major version migration problem. See 4.x branches of BOTCHA project (D6 & D7) together with common part x.x-1.x as an implementation of such audacious approach.


Better Jump Menus

Screen shot 2011-08-03 at 1.10.37 AM.png

Easily display hierarchical select jump menus... from menus.

  • Use core menus to display <select> jump menus!
  • Borrows the CTools builder API plugin.
  • Includes a block for local menu tasks (like node edit tabs.)
  • Use dummy items with Special Menu Items (empty optgroups.)
  • Good looking dash and space indented hierarchy.
  • Pre-built jump menu blocks (one for each menu).
  • Configurable default UI text.


Floating block

The Floating block module allows you to keep html blocks, selected using jquery selectors in a fixed position on the page as you scroll. It works in a similar way the table header fixer in Drupal Core. This means that when the user scrolls their browser selected parts of the page can stay in the users view.

This is extremely useful when you have pages with lots of content and you want a side menu to stay in view. Visit http://dev.vit-al.co.uk/floating_block to see the module in action.

Tips for using jQuery selectors
Using the default Garland theme in Drupal 6 example selectors would be:
#sidebar-left Float the left sidebar
.primary-links Float the primary menu
.block-user Float the user login block

The important thing is to look at the html drupal is generating for your page and look at the id or class of the element your want to float. Find out more about jQuery selectors... Additionally another very useful tool (if you are using Firefox) is Firebug.


Mobile Detect

This is a lightweight mobile detection based on the Mobile_Detect.php library, which can be obtained from the GitHub repository.


OM Maximenu

OM Maximenu

"Maximize your main navigation by adding text, images, videos, slideshow, tabs, menu blocks, user info ..."

That is now possible by using OM Maximenu which can create menus with all other module blocks you want as attachments, modules like views, slideshow, menu, user, nice menus, quicktabs, and custom blocks with tables, lists, images, videos, etc.

For OM Maximenu advanced editing, install OM Tools 2


Accordion Menu

This module will display a menu using a jQuery UI accordion effect.

The 6.x-1.x and 7.x-1.x releases support the same features. Features in version 6.x-1.2 (and above) include:




Mega menus are a type of drop-down, which seeks to overcome some of the usability drawbacks of traditional drop-downs. Hierarchy of your navigation is made visible all at once and the amount of clicking, searching, and navigating is reduced.

This module allows you to build mega menus by leveraging jQuery and the existing Drupal menu system. Megamenu takes a Drupal menu that is 3 levels deep, and converts it into a categorized 3-level mega menu, which is placed into your site as a block.


Javascript Tools

Javascript Tools provides a common set of methods extending those available in Drupal core (drupal.js) for Javascript and AJAX module development in Drupal.

Note: you should not install this module for Drupal 6 unless it is required by another module.

Note: As of Oct. 20, 2009, the 5.x version is no longer supported.

Prior to Drupal 6, Javascript Tools included an integrated set of Javascript and AJAX modules. For Drupal 6, modules previously part of Javascript Tools now have the following separate projects:

Active menus, http://drupal.org/project/activemenu (requires Javascript Tools 6)
Collapsiblock, http://drupal.org/project/collapsiblock (requires Javascript Tools 6)
Tabs: http://drupal.org/project/tabs
Active edit, http://drupal.org/project/activeedit (prototype only as yet, not usable)
Ajax submit, http://drupal.org/project/ajaxsubmit

Install Javascript Tools 6 only if you use Active menus or Collapsiblock or another module that requires it.


Contextual Tabs

Contextual Tabs

Moves the normal Drupal primary tabs into a drop-down "contextual links" menu to the right of the node title.

Contains configuration to determine which pages are excluded (such as admin*).

There are other modules that attempt to move the tabs into contextual links that mostly all use the Theme layer. This is a module-based approach. In addition, there is configuration flexibility to determine which links to pull out of the config menu as separate buttons.

For example, you can pull the "Edit" link as a separate button, with the "Gear icon" containing the rest of the tabs. You can customize which buttons are pull out of the links on a URL pattern basis. You can also rename links. For example, on a node-edit page you can pull out the normal View tab and rename it as a "Cancel" button for the edit page.

Also contains an alter hook to allow other modules to modify the links, either adding new buttons, or changing/adding the links menu.

NOTE: The drop-down menu is implemented using Bootstrap classes. If you are not using a Bootstrap-based theme you may need to perform some theme and/or javascript work to make the menu work as a drop-down menu. Patches to make this module more generally useful are welcome.


Rules Bonus Pack

This module is a greenhouse for Rules functionality – triggers, actions and conditions that could be included in the Rules module, but probably should be tested out and voted on first. Feel free to add your own ideas, opinions, examples and feature requests!

Note 1: I do not plan to make a stable release of this project. It is a greenhouse for building and trying out new functionality for Rules, and should always be open for new and untested ideas.

Note 2: The Views integration in this kind of broken. It will be rewritten, but that has not started yet. If you want to use Views to load entities into Rules, I recommend Views Bulk Operations. See the VBO chapter at http://dev.nodeone.se/node/984 for a tutorial on how to do this.


The usual. Download, enable. You will need the Rules module. (Surprise!)


Menu CSS Names

Now for D7 too! This is a very simple module that takes the link text of each drupal menu item and adds it as a css class name to the menu's <li> element. Using these class names, each menu item can be styled separately with css. This is also very useful for css sprite techniques.


Panels Extra Styles

Panels Wrapper: Element style settings


Enable the module to find additional region and pane styles in Panels. Below is a list of those currently included. Please share and contribute your styles! :)

Panels Wrapper

Wrap your panes and regions with unlimited possibilities.

  • Go HTML5! Wrap your content in the newly defined tags.
  • Add custom containers and HTML.
  • Simplify and beautify Panels markup.


Examples for Developers

Follow the Examples project on Twitter: https://twitter.com/DrupalExamples

The Examples for Developers project has a Gratipay/Gittip team page. You can contribute financially to the project: https://gratipay.com/DrupalExamples/