25 Hand-picked items to enhance your drupal website's functionality

I did somre research on "how can I enhance my drupal website ? ". I came across some modules and snippets, then I looked for the stability and maintainability aspect. The following items, can be safely adopted to add  features to your website. Overall it will help in increasing the traffic or to enhance the functionality.

  1. Adding a chat feature to your website.
    1. The ParaChat Drupal module embeds a ParaChat applet in your site and automatically logs in users with their Drupal username. There is access control so you can setup which roles you would like to be able to join the chat room. For added security, you can configure ParaChat to validate users from the ParaChat server before allowing them to join. More details , read here http://coder1.com/articles/drupal-parachat-module
    2. Another solution would be to go for  The Video Chat module adds a fully hosted free video chat to a Drupal website. The module provides a block where a user can enter his age and gender (since Drupal does not have this information) and then enter a webcam chat room exclusive to the sites domain name (not the individual Drupal installation). For normal chat you can use http://drupal.org/project/chatroom
  2. ScreenCasts for your users – A simple way to add screencasts to your drupal website
  3. HowTo: Add a Terms of Agreement on Registration Page
    1. This is a quick and easy way to have users agree to a terms of service during registration using the profile.module. Ensure that the profile.module (part of core) is enabled, before beginning this recipe. Those looking for a module that does something similar should look to the legal.module. The "Terms of Use" module is another option.
  4. HowTo: Create a manageable blogroll with Views
    1. Create a Blogroll (list of links and descriptions). We want a block to show a set number of the links, in a random order. We also want a page to show all of the links and descriptions.
  5. Adding a taskbar ( like facebook) to your website
    1. Taskbar Module - provides a taskbar with AJAX blocks and periodical refresh regions where modules can send updates/status. The best part of taskbar is you can add any block to the taskbar. It can also provide realtime updates and also has notification system.


  1. Replacing terms with links – Like Wikipedia
    1. Alinks module is very easy to use, just enter your normal content and setup the terms/links you want on your site through the administration interface.


  1. Megamenu like Amazon
    1. Today many websites have a large menu which displays on mouse hover. I analyzed GigaMenu , Megamenu modules but I think they have some issues. To add this functionality to Drupal, you can use Menu Minipanels module. This uses panels module and provides lot of flexibility on what can be added to mega menu.  Views, blocks, nodes, other menus, and even raw PHP code if the PHP Filter is enabled. Further, there are multiple layouts available and more can be easily built. Further, each minipanel can be customized differently, as can be seen from some of the example sites below.


  1. HowTo: Use tokens to pre-fill the contact form
    1. This 10-step tutorial will assist you in creating custom tokenized links. Such links, in combination with the great Advanced Contact module, will allow you to create links which automatically select a category on the contact page, and can even send tokenized subject information.
  2. PayPal Donation using CCK Several postings have asked for a fast way to take a donation from a user and process it via PayPal. The E-Commerce module has a facility to do this, but it involves a shopping cart and several additional steps for the user, thus driving down the likelihood of completing the donation process.


  1. Show node teasers even when the user doesn't have node access permission
    1. Some sites want to show node teasers on the front page while restricting body access to authorized users. The idea is to encourage anonymous users to log in or to encourage authorized users to subscribe. Out of the box Drupal node access is all or nothing.
    2. There are several ways to accomplish this:

Use Views 3 and disable SQL rewriting for a particular view

Use Views and Views Ignore Node Permissions

Add PHP code to nodes you want to protect

Create your own access control system

Use the Premium module

Use the Premium content module

Use Views and Nodequeue modules


  1. Add pages to favorites and place them in a user specific menu.

This tutorial will learn you how to give your users the ability to add nodes to a list of favorites and show those in a menu.

First you need the following modules, so download them from the drupal site and install:

- Views
- Views Flag Refresh

  1. HowTo: Create a user friendly mapping for non-drupal nerds
    1. This recipe is about adding maps or location information to your drupal website. For this howto you will need the following modules: Location The module needed for adding a location to a node. Gmap The gmap module includes the "Gmap location" module which lets you select the location used by the location module via a map. Gmap addons A module which contains the Gmap CCK field. The gmap_cck_field can use a nodereference field in the same node type as the gmap_cck_field itself is part of.
  2. How to track volunteer hours

This recipe is in D5 , but it should work with any drupal version. A simple way to record and track their volunteer hours.  Once you understand this, you can use if for many such similar functionalities.

  1. Release Content to Subscribers in a Sequence  To set up a Drupal site so that it can deliver a series of tutorials to subscribers over a period of time, such that in the first week of the subscription the subscriber receives tutorial one, in the second week, tutorial two and so on.


  1. Reddit Algorithm with Votingapi This howto shows explains how to add social voting algorithm to your Drupal site using Votingapi. It implements the Reddit algorithm circa Dec 8, 2005, and is done via hook_votingapi_results_alter. It is based off of this http://uggedal.com/reddit.cf.algorithm.png


  1. How to Set up Google AdSense for Search without using a custom module  Google AdSense for Search offer your users site search or web search while earning revenue from ads relevant to their search terms. Incorporating Google AdSense for Search into a Drupal website without using a custom module can be accomplished if you utilize the following method.


  1. How to have authors notified by email when a comment is added to their articles ? If you need to have authors receiving an email when a comment is posted on one of their articles, do the following :
    1. install and enable token module, version next to 6.x-1.11 (dev version, presently)
      - enable trigger module
      - log in as administrator and go to Actions
      - add an advanced "send tokenized email" action
      - put [author-mail] in the receipient field and fill in other fields as you want
      - go to the Triggers and click the "Comments" button
      - in "After saving new comment", add the action you just created
  2. Basic private intranet web site

Describes how to incorporate Access control and Security for an Intranet Webstie. This will work for basic intranet sites, suitable for small groups or small business, something which is geared towards documentation/knowledge management type of functions. More functionality and larger companies should probably look at other modules especially organic groups.

  1. Creating View of Distinct Active Taxonomy Terms (browse by category)\


  1. Vertical Tabs – Vertical tabs will soon be part of drupal core. For Drupal 6 to provide backward compatibility you can use http://drupal.org/project/vertical_tabs module.


  1. Creating user/role-specific menus and integrating with an external site


  1. Fixed position for a 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.


  1. Weather

Weather module can be used to add weather information to your website. It uses METAR (METeorological Aerodrome Report) data to display current weather conditions from anywhere in the world.


  1. Tabbed blocks using quick tabs

The Quick Tabs module allows you to create blocks of tabbed content, specifically views, blocks, nodes* and other quicktabs*. You can create a block on your site containing multiple tabs with corresponding content. Clicking on the tabs makes the corresponding content display instantly, using jQuery


  1. Pending user notification block

This module is for sites that allow users to create an account, but require administrator approval for account activation. This module creates a block that shows a list of un-activated user accounts, with links to their account pages. This block is visible for anyone with 'administer users' permission, and will not be shown to any other users.