33,124 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.


Provides a simple command to get stats about APC from the command line.


kmvc is a micro MVC framework that have a convention over confiugration approach which will save you from registering urls for different actions you want to create in Drupal and it will provide you an object oriented approach to handle your module.

It attaches itself to the menu_hook and create custom on the fly routes for the controller classes you have defined in your library.

It's completely Object Oriented and provides a very simple structure for developers new to the Drupal. You have to define some small configurations in your .module file which are pretty easy and you will be ready to go in no time.

It does not override the current routing of Drupal but it comes around right before a 404.

Usage of Controllers and Actions are similar to the Zend Framework, where each controller should be defined with a Controller suffix and each action should have an Action suffix. These classes should be managed in an app and controllers folders. It has a support for modules too where controllers can be grouped into modules.

Rules Workflow

This project is an exported feature (Features module).
It contains workflow that is build with Rules and Rules Links modules as an example for session on DrupalForum 2012 in Zaporozhye.

Here is some features:

Module Dependent Themes (MDT)

Until it gets implemented in Core, a way to make themes dependent on modules. Now, it's not perfect as it, itself, cannot be a dependency and therefore isn't guaranteed to work, but with a large enough install, it'll work!

Renderer per node

Renderer Per Node - alternative filefield displays on one page

Allow editors to choose different rendering options on a per-node basis.

This allows you to add an extra select box to a content type, and then use that as a modifier that controls the rendering of another field.

Prime use-case is to select different sizes from imagecache to use on filefield images to control how a mini-gallery is displayed.

Imagefield magazinelayout

Magazinelayout in action

An alternative renderer for displaying imagefield images attached to nodes

Wrapper around the "magazine layout" algorithm described by
Harvey Kane at alistapart 2006.

This uses clever maths to shift a set of disparate images into an aesthetic grid-like rectangle.

Choose "Magazine Layout" in the "Display fields" administration for your content type on an imagefield.
That's it. The rest is done by magic.

Ad statistics kill

This is a module that will truncate the ad_statistics table on cron.

Why the heck would I want to do that?

1) You care about the size of your database
The ad_statistics table records way too much information about ads, it records so much information that on some of my sites this one table is more than 500x larger than the entire rest of my site!

NodeStream core tests

This is a fork of the NodeStream core project that aims to create tests for NodeStream functionality. It will be removed once we have an acceptable amount of tests.

Comment Blocks

This module will provide various blocks for comments

l10n source changer

This is a small and efficent module that allows change l10n source string.
If you have typed incorrect localization source strings wrapped in a function "Drupal.t" or "t()", but all translations are ready. Now you can change l10n source strings on the page admin/build/translate/search

LDAP integration helper, sync existing user data

Will map existing users with an entry in LDAP to LDAP authentication.

Just enable the module, and the mapping will be done, and the module disabled again. And when it is mapped to the LDAP authentication, the LDAP sync will be able to perform the syncing in the future.

Requires the LDAP integration module, and although not required, it is recommended to use together with this patch.

Image Effects Text

Image Effects Text is a module that defines an image effect that allows to place text on an image. It is a rewrite of the D6 text imagecache action, that the ImageCache Actions project itself failed/forgot to update. It is a solution for issue #1090312: Add text effect to D7.

Colorbox Video Popups D6

Colorbox Video Popups D6 is a features module which creates colorbox popups to display YouTube and Vimeo videos.

I've tried to include all the dependencies and variables including site_frontpage. Instructions for this module are as follows:

1. On a newly installed sandbox of your own, enable this project.
2. Add two terms, 'Vimeo' and 'YouTube', to the taxonomy 'Video' (more on this below).
3. Create two contents of type 'video'. One node can be for a YouTube video and one node can be for a Vimeo video, for instance. Don't forget the taxonomy and the custom thumbnail. I've included sample thumbnails in the /sharks folder which work well with the included css.
4. Go to your frontpage where you will see the Vimeo page and YouTube block side by side. Click on either to view the video in a colorbox popup!

The hover shadow for Firefox, Chrome, and Safari users is the result of some CSS3 goodness.


Module patches:
To remove an unpleasant looking border around the video popup, emfield, media_youtube, and media_vimeo need to be patched. I've included the patches with the module, or you can download them from http://drupal.org/node/1050792#comment-5582736.

Selectable Blocks

The Selectable Blocks module allows selection of the blocks when creating or editing a node. A selected block will show up in the selectable region assigned on the node page. The module was crated for a client to eliminate the need to access the Blocks page and enter the correct path alias to control whether a block should show up for a particular node.

Skysa for Drupal 6.x

What is Skysa?

The Skysa App Bar is a free to use standardized web app platform which enhances any website or blog. Enabling a website with Skysa takes less than 5 minutes. Once installed the Skysa Bar displays on your webpage at the bottom or top (your choice) of the browser window; making it unobtrusive, while at the same time, presenting a range of applications you have added to the bar for your visitors and site members to use. An example, some Apps which can be added to your Skysa Bar include: Chat, Instant Messaging, Interactive Sharing, Who's Online, Translate, Voting Poll, Twitter, Facebook, YouTube videos, RSS, News Ticker and many others that are available in our App library.

Why Use Skysa?

With Skysa, you can add or improve social features, add other social services to your website, engage your website visitors, collect valuable member information, the list goes on. Skysa is designed to help websites keep visitors longer and build more traffic through socially engaging apps. Skysa is a robust web app platform; once added to your website, you never have to update code to get new features or updates (Less Headaches for you).

The Skysa Difference:


    Status: Before this becomes a real project, some of you guys has to suggest a different name! "Drux" is just too meaningless.

    Additional drush commands for dealing with module dependencies in a code-driven development workflow.

    drush dep
    Download and enable dependencies of all enabled modules.

    drush obs [module 1] [module 2] [module 3]
    Find all modules that could be safely disabled without disabling any of the modules specified as arguments.

    Use case: The PULL situation

    You pull code (modules and features) that a fellow developer has worked on. These modules could contain new dependencies. You run "drush updb" and "drush cc all", but the dependencies are still not enabled.

    Now in addition you run "drush dep", and everything is fine.

    Use case: The PUSH situation

    You worked on some modules (incl features), and want to push them upstream. Your fellow developers need to know which other modules they need to enable, so you add those as dependencies. But, how can you be sure you did not forget a dependency?

    You have one or more "seed" modules, with all the dependencies. You agree in your team that these should always be enabled.


    With this module you are able to create a content type "GCCode" with an official gc-code from geocaching.com as title. By importing gpx-files, attributes from gc.com will be shown in the node. Alternatively you can launch a download of informations by clicking on a button in the node. For this implementation the ruby-script geotoad is used in background. The content typ itself offers space to enter your status on the geocache and notices. So this module is about creating your own personal geocaches database.

    Update manager plus

    Do you know the situation: You want to install a new project (module or theme) and first you have to lookup the url of the project?

    With this module you just enter the project name und you will get the releases. Cool eh?


    • Enable modules directly after download
    • Add settings page

    n8 Experiment

    Nate's sandbox for some drupal experiments.

    Page Titles by Path

    This module is a very basic module for filling in some of the gaps left over by the Page Title module. I was frustrated with the fact that it was very difficult to get custom title tags on panels_pages and apachesolr search pages so I quickly wrote this basic module to provide a path to title mapping in a simple text field (one mapping per line).

    This module does require the Page Title Api


    Suri (Strict URI) is an attempt to reduce "duplicate content" on websites.

    The concern

    Let's suppose you wrote you code and defined a menu 'mymodule/%' which has as occurence 'mymodule/example'.
    The way drupal works make 'mymodule/example' and 'mymodule/example/test' to be treated by the same 'page callback'.
    In some case, 'mymodule/example/test' will be treated by Google as duplicate content.

    There's another case where you menu doesn't deal with parameters like 'page' or 'utm' or another unwanted. For example, on most urls, we can add an extra parameters (look drupal.org/node/21951 and drupal.org/node/21951?page=12). The extra parameters in the latter case is 'page', which is not performed by the page. Thus making it unecessary.

    Both example could lead to duplicate content if indexed by google.

    How does suri try to resolve it ?

    Each drupal menu has a fixed number parts. When a url is given and if the max parts of the path is more than what is defined in the menu, then Suri try to guess the nearer parent and redirect the user to it.
    If a menu is configured to accept only specific arguments, anytime the menu will be called with unwanted argument, the user will be redirect to the nearer parent of the menu.

    How can you specify which extra arguments you deal with ?



    CCTV brings IP Camera footage management (recording and retention) to Drupal.

    There are a few Open Source CCTV solutions out there but I believe that CCTV fills in that gap with its ability to quickly produce a cameras recording in a standard format. Oh! Did I mention its super flexible due to being in Drupal!


    • Easy split files for per IP Camera
    • Flexible
    • Web Management


    • Large datastore depending on retention setting and ip camera compression
    • Local access to cron for more accurate recordings
    • IP Camera for recording
    • VLC Packages for command line execution (for built in recording option).
    • Unix Based or Cygwin Installed Host

    Known problems

    • Recordings not starting on specified interval: This is due to the use of Drupal's cron system. For a more accurate result (minutes on either end of required execute) use the Manual Cron Solution.


    Initial Configuration

    • After downloading and installing this module you will want to configure it. This can be done by going to the follow configuration page:

    calendar date field

    The Calendar date field is a field that allows users to select and insert events in a full sized calendar, with the parse PHP function you are able to prepopulate the calendar with events so you can select dates that dont conflict with anything else in the system, I developed this module so i can use the commerce module to take bookings for my hypnotherapy practice, but it can be used with anything such as labour jobs, or even a public calendar

    Emacs IDE for Drupal


    Tools and libs for Drupal development under GNU/Emacs. GNU/Emacs is a big and strange thing actively used by a hacker subculture for any purposes. One of Emacs abilities — to be an IDE for a wide variety of languages. There are some extensions and tools for using Emacs as IDE for PHP. The purpose of this project is to merge useful PHP tools for Emacs to one bundle for a quick installation and easy updating.

    Version 1.x of the IDE offers basic set of features:

    • Syntax highlighting (with drupal-mode)
    • Code formatting mostly compatible with Drupal standards (with drupal-mode)
    • Basic set of expandable code templates for Drupal hooks and PHP functions (with yasnippet)
    • Realtime PHP-syntax checks (with flymake)
    • Shows help for API functions in an external browser


    • Insert hook templates from parsed *.api.php files.
    • Minor mode for replace dashes with underscores (especially for hardcoded Lisp programmers :)
    • Snippets with Russian comments (more translated snippets are welcome)

    From Emacs point of view features are:


    Object API

    This is a collection of wrappers for Drupal objects. Just an experiment for now.