Add functionality and customize your Drupal application with thousands of projects contributed by our amazing community.

51,602 modules match your search

A module is code that extends Drupal's by altering existing functionality or adding new features. You can use modules contributed by others or create your own. Learn more about creating and using Drupal modules.

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.

User Expire

This module allows an administrator to define a date on which to expire a specific user account or to define a period at a role level where inactive accounts will be locked.

Users Export

Have you ever needed to download your user list to Excel, or export it to a comma-separated file? This module steps in and does just that.

Media Library

A screenshot of the media library file listing page.

Media Library extends the Media and File Entity modules to provide the ability to restrict which files are considered part of a site's media collection.

HTTP Response Headers

Overview

This module allows to set HTTP response headers (both standard and non-standard) on pages by various visibility rule settings. Currently the headers can be set by path, content type and user role.

Use cases

case 1: Set 'Cache-Control' or 'Expires' header to set/reset cache behaviour of browser/cache servers.
case 2: Set 'X-Frame-Options' to restrict your pages rendering on a frame.
case 3: Set 'WWW-Authenticate' to set authentication to pages.

Features

  1. Configure list of allowed headers
  2. Exclude non-functional pages (e.g. Admin pages) globally
  3. Drush extension to cover all functionality
  4. Page level header rule caching
  5. Export/import (using Ctool) header rules from an inc file (MODULE.http_response_headers_default_rule.inc) or hook implementation (hook_http_response_headers_default_rule())

Known problems

  1. The calculation for certain headers (e.g. Expires) happens internally and end user may not aware of it. So entering 600 in expires header value change to ISO date format of 5 minutes from current time.
  2. Doesn't work well with Drupal page cache

Popup On Load

The module allows to display a popup once after a certain delay on a page load. This fills a gap in popup modules family (Popups, Popup), which are designed to show popups only after a click on an HTML element, or to implement a complex behavior like modal dialog forms.

If you want to just display a popup after a page load, the Popup On Load module possibly fits your needs. Module's main features:

  • Display a Colorbox-based popup on page load.
  • Easily alter JavaScript popup settings using hook_popup_onload_js_settings_alter().
  • Specify popup width/height (or let Colorbox decide).
  • Specify whether the popup is fixed.
  • Common settings for all popups: pages where they are displayed, delay time, cookie lifetime (how much popup will NOT be displayed again to the user).
  • Create an action for popup display, which can be easily integrated into Rules system.
  • Create a default rules set for popup display.
  • Gather simple popup statistics, showing number of views and clicks, and Click-Through-Rate.

The module depends on following modules:

Image Caption

Image Caption

DESCRIPTION:

This module uses JQuery to dynamically add captions to images.
The image title attribute is used to create the caption.
It basically wraps the image in an html container div, takes the image title text and appends that in a child div underneath the image.
Technically, it works by implementing Drupal's hook_nodeapi to add one small snippet of captioner jquery to the head section of the page when a node of the configured type is viewed.

EXAMPLE:

<img src="/files/example.jpg" title="example caption" class="caption" />

This will result in an image with the caption of 'example caption'

INSTALL:

  1. Copy the image_caption folder to your Drupal modules folder
  2. Add the empty css definition:
    .caption{} 
    

    to the stylesheet used by your WYSIWYG editor (to enable it to appear in the style select box on the editor toolbar, or class select box).
    You might be able to add it to your theme's style.css to get it to appear in the class dropdown box in your WYSIWYG editor.

  3. Enable the Image Caption module in Drupal module administration.
  4. IMPORTANT: After install, select the node types to include in image caption processing under Site Configuration > Image Caption

NOTE:

Layout Options

Layout Options - YAML and two layout managers

This module provides a Layout plugin that allows configuration options to easily be added to layouts using YAML files and LayoutOption plugins. In most cases, using no code just YAML files.

File Field Icons

This modules adds the ability to change default file field icons. You can use core icon packages (included in this module), or you can define a custom icon package.

Acquia Personalization

Acquia Personalization merges content and customer data into one tool, empowering organizations to deliver the most cohesive and personalized experiences across multiple channels and devices.

Workflow buttons

Three buttons: Save, Unpublish, and Delete

This module works with the core Workflows module to provide buttons for content moderation.

SWF Tools

Overview

SWF Tools allows you to easily embed flash content and media players on your pages. The whole concept of SWF Tools is to let you focus on displaying media on your site, but without having to write code to enable it.

Formats

You can use any of the following formats to add your media:

  • CCK display formatters (see documentation for details)
  • Inline embedding ([swf file="mymovie.swf"])
  • PHP code:
     print swf('mymovie.swf'); 
    

Embedding

You can choose either direct embedding markup, or JavaScript embedding using SWF Object 2

Media players

You can enable support for a number of common media players, including:

  • Flowplayer
  • 1 Pixel Out
  • JW Image Rotator
  • JW Media Player
  • Simple Viewer

Playlists

Organic Groups Mass Add

Overrides the internal "add users" page of Organic Groups with a more powerful alternative.

The D7 branch requires Views bulk operations.

Takes a list where each row can be either:

  1. username
  2. mail address
  3. firstname, lastname, mail address
  4. firstname, lastname, mail address, desired username

In case 1 or if there is an mail address provided, the module first checks if it matches an existing user, and adds that user to the group.

In case 2-4, if there is no matching user, the user will be created (as long as the person submitting the form has permissions to do so). Newly created users will also have a content profile node created for them if enabled (has a settings page).

The usernames are created by trying these alternatives in order:

  1. If one is provided, the suggested username
  2. The first part of the email address (everything before the @)
  3. If both firstname and lastname is provided, "F.L".
    F is x number of letters from firstname, where x starts at 1 and goes up to the full length of firstname.
    L is lastname.
  4. If firstname is provided without lastname, firstname only.
  5. If lastname is provided without firstname, lastname only.

CKEditor5 Embedded Content

This module allows content editors to insert rich and styled pieces of content into CKEditor5 without having to give them HTML editing permissions.

Group Media

Media tab on Group page

This module is designed to associate group specific media elements with a group when using the Group module.

Node Title Validation

Node Title Validation Configuration Page

This is a very light weight module and help to validate node titles with min/max characters, blocklist special characters/words and unique node titles.

Validating the node title by

Splashify

Sample splash popup.

Display a splash page anywhere on your site by redirecting the user, showing a lightbox, or displaying a popup. This module is designed to be search engine friendly, mobile device friendly and offers multiple configuration options.

Image Class

Screenshot of image formatter settings with Image Class module

Extends the Image formatter by adding an option to add an element class.

Colorbox field formatter

This modules provides a field formatter, so that you can easily activate the colorbox for fields that are part of a display type or a view. The following field types are currently supported:

Pages