Adsense

Great Modules for the Drupal Beginner


"I'm new to Drupal. What modules should I check out?"
That's a common Drupal beginner question. Everyone (even the newbie who asks) knows the general answer: "It depends entirely upon what your site needs." But that doesn't help the beginner much with making a start. "You can do anything, because Drupal has over 4000 modules!" is wonderful news to the ambitious newbie's ear – yet it's pretty frightening, too.
The smart Drupal beginner will rightly ask, "Okay, I know there's a bushel of modules for any feature I have in mind, and I look forward to exploring them in detail... but for now, what are some common favorites for Drupal sites of every stripe?"
A good list of popular, all-round workhorse modules can quickly get a newcomer on the path to a functional site. Here's a list of my most-used Drupal 6 favorites, plus a few recommendations for beginners, based on butter-fingered experience with over a dozen sites. I'd love to see comments with additional (or better) ideas!

The core basics

All from the 'Core - optional' grouping on the admin/build/modules form:
Menu: I'm not even sure how this is "optional". Enable it. 
Path: As above, it'd be a strange site that didn't enable this. Path lets you to set your own URL paths for content, which is great for user comprehension and SEO alike. If you don't use this, just stop reading here and go sit in the corner.
Taxonomy: Drupal without taxonomy (i.e., keyword "tags" for organizing and manipulating content) is barely Drupal. Drupal Ace without taxonomy is a hollow, bitter shell of a man. 
Blog, Comment, Contact, Forum, Poll, Search, Upload: Whether you need these depends on whether you want blog functionality, commenting, contact forms, forums, polls, built-in search, and file uploads, respectively. All purely optional, but all very common. 
Book: A great format for content that belongs in easily-rearranged hierarchies. 
Ping: Alerts other sites when your site has been updated. I always enable Ping.
Statistics: Track access statistics. I'm not certain how vital this is, but I've never not used it.

Useful tools for general site building

Front Page: A workhorse module for customizing your front page. (See Splash, too.) 
Views: A suite of tools for organizing your content into lists, tables, galleries, whatever. It's still an optional contributed module, but is increasingly the preferred Drupal toolkit for presenting content. Give yourself over to its deep ways and you won't be sorry.
CCK: A suite of modules for customizing node types or creating new types. Like Views, it's an optional contributed module and not every site needs it, but for many sites CCK is vital. 
Panels: Heady stuff for fancy arrangements of content. I haven't used it much yet, but I'm glad knowing it's on standby for future grand designs.    
Image: Some newbies will be surprised to learn that image handling (other than via direct code input) is a Drupal add-on feature. This suite of modules enables a way to attach a single image to a node, create very simple galleries, and create images as nodes. (But a caution: Many image-handling concepts will require added, or entirely different, modules. Of which Drupal offers about two jazillion.) 
Site map: Doesn't everyone want a site map? I like to set that as my "content not found" or "access denied" page, to steer wayward searchers back toward the corral. 

Useful tools for general content creation

FCKeditorTiny Tiny MCE: Two popular tools for adding WYSIWYG editing to Drupal text content. Preferences run strong in this area; I use Tiny Tiny MCE partly out of comfort and inertia, while some Drupalers prefer FCKeditor, Wysiwg, or one of many other offerings. 
IMCE: The Image module suite attaches an image to a node in a predetermined manner. IMCE, on the other hand, works with WYSIWYG editors like the above to place images anywhere inside text. Many users will expect this kind of basic image-insertion functionality.
Pagination (Node): If you want to break long content into multiple pages, this module will do the job without requiring you to create multiple nodes. (There's also the Paging module; I don't know off-hand which is better.) 
Pathauto: Creates paths automatically, based on flexible rules you set. Life without Pathauto is cold... so very cold... 
Preferred Format: Without this, I always forget to set the desired input format when submitting content. Preferred Format always earns its keep. 
Scheduler: If you need to schedule automated posting and un-posting of content, this is the perfect solution. 

Site performance aids

Path Cache: Caches URL aliases to speed things up.
Throttle: A Core module, Throttle turns off unneeded site features when you're under server-stressing swarms of content-hungry visitors. I like to pretend I need this.

SEO helpers

Global Redirect: It's easy to end up with multiple paths pointing to the same content – which looks like multiple instances of the same content. This module prevents the problem by redirecting "node/42"-type paths to your nice clean aliases. 
SEO Checklist: A nice checklist of practices and modules (with convenient links to download and enable modules) to improve your site's ranking on search engines. 
Meta tags: Places meta tags into content and the front page. 
Page Title: Lets you specify a page title (which search engines use) that's different from your node title (which may be more geared toward human readers).
XML Sitemap: Creates a sitemap of the sort that Google and other search engines like. The sitemap aids the crawlers in finding and indexing all the pages on your site, a particularly good thing in a system like Drupal where pages don't necessarily fall under a neat hierarchy.  

Social stuff

AddToAny: Among many available methods for adding "social networking links", I like this one for its simplicity and functionality. 
Comment Notify: Lets any user receive email notice of follow-up comments, keeping them connected to the conversation.  
FeedBurner: I'm not too experienced with this yet, but it (and a Google FeedBurner account) add functionality to your RSS feeds. 
Mollom: Currently my favorite way to turn off the anti-social stuff (spam etc.). Doesn't annoy commenters with "captcha" tests. If there's a drawback to its magic, I haven't seen it yet. 
Fivestar: The basic toolkit for content ratings. 

Tools for easy administration

Administration Menu: A drop-down menu for administrative tasks. It hasn't overly excited me yet, but some Drupalers swear by it.
ModuleInfo: Adds lots of helpful info to the admin's list of modules. Good for beginners learning what module does what. 
Backup and Migrate: Smashingly simple way to back up a Drupal site database. Easier and faster than calling up phpMyAdmin.
Poormanscron: If you don't know cron from maize, install this module and let it take care of your scheduled back-end tasks. Great scheduling solution for the rest of us. 
Google Analytics: How else would I know how little traffic I get?
Update Status: A clever Core module that warns when your system, modules, or themes have updates waiting. (If you run many sites off of one Drupal installation, only one site needs use this module.) 

Tools for restricting access

I don't often need these features, but many beginners seek them out. Suggestions:
Protected NodePrivate, and Premium: Three modules offering limited but easy and lightweight control over content access. (See comparison of content access modules.)
Content Access: The power-admin's version of the above, for flexibly configuring who can access what. (Use with the ACL module. Alternately, check out Simple Access as a potentially easier tool.)

Other noteworthy stuff

Simplenews: If you want email newsletters, this is a good basic toolkit. Lots of related modules are available to further enhance and fine-tune its functions.
Advanced Forum: The basic functionality of the Forum module is pretty simple. Some Drupal sites opt for entirely different external solutions, grafted on via appropriate modules. Somewhere between those two extremes is Advanced Forum, a simple way to add a little power and flair to humble Forum. 
Printer, email and PDF versions: Among several solutions, I like this simple module for creating print-out versions of pages (and PDF if needed). I leave email forwarding and other sharing functions to AddToAny. 
AdSense: Your basic toolkit for unleashing the torrent of AdSense pennies. 
Web Links: Among many solutions for managing lists of web links, currently I like this one. See it in action on the links page

Trivial little things that I like

Re: Comment subjects: Places a default subject into comments. 
Download Count: If you've got downloads, it's nice to keep count.
Persistent Login: Adds that "Remember me" checkbox to a login form. 
Side Content: A simple tool for attaching sidebar info to specific nodes. 
WordPress Comments: Makes comment forms look nicer. I'm shallow like that, okay?
External Links: Adds little visual indicators that a link leads off-site, and automates opening of external links in new windows.
Read More Link: Curbs Drupal's odd propensity to make "Read more" links almost invisible. 
Relevant Content: Makes a nice block directing readers to similar content. 

More modules!

Want more on this topic? Try these overviews by fellow Drupalers:
You can also check what modules are most popular among all Drupal users, via this project usage overviewpage that tracks the number of sites reporting use of each module. 
Finally, for details, user ratings, and more info about any module, as well as great ways to find new modules for your sites, don't forget the Drupal Modules website.

Top 10 Drupal Modules


ModuleProject PageVer.ImportanceTutorials
Content Construction Kit (CCK)http://drupal.org/ project/cck5/6must have
The Content Construction Kit allows you to add custom fields to nodes using a web browser.


Viewshttp://drupal.org/ project/views5/6must have
The Views module provides a flexible method for Drupal site designers to control how lists and tables of content are presented.


Recaptcha (or Mollom)http://drupal.org/ project/recaptcha
http://drupal.org/ project/mollom
4/5/6good to have
A CAPTCHA is a challenge-response test most often placed within web forms to determine whether the user is human.


Administration Menuhttp://drupal.org/ project/admin_menu4/5/6nice to have
Administration menu module provides a theme-independent administration interface for Drupal.


LoginTobbaganhttp://drupal.org/ project/logintoboggan5/6nice to have
The Login Toboggan module offers several usability improvements of the Drupal login system.


Imagecachehttp://drupal.org/ project/imagecache5/6for image-rich websites
ImageCache allows you to setup presets for image processing.


Filefieldhttp://drupal.org/ project/filefield5/6for image-rich websites
FileField provides a universal file upload field for CCK.


Image fieldhttp://drupal.org/ project/imagefield5/6for image-rich websites
ImageField provides an image upload field for CCK.


Backup & Migratehttp://drupal.org/ project/backup_migrate5/6nice to have
Backup and Migrate simplifies the task of backing up and restoring your Drupal database or copying your database from one Drupal site to another.


Develhttp://drupal.org/ project/devel5/6developers only
A suite of modules containing fun for module developers and themers. 

How to Backup a Drupal Site


Backing up a Drupal site has always been a tedious process. I've just learned about an easier way.

The Old Way

In the past I've always used this method to backup a Drupal site:
  1. Backup the website with SSH
  2. Figure out how to login to client's webhosting control panel and either mysqldump over SSH or use PHPmyAdmin.

The Easier Way

(I learned about this method from Ferenc's travel photographer blog. His Photography Directory is built in Drupal.)
Download and install Drupal's Backup and Migrate Module. Then go to admin > content > Backup & Migrate and follow the directions.
Basically, you can just click a button and backup your entire Drupal database with only the data you want to keep. The unnecessary data from the cache and accesslog tables aren't backed up so the file size of the backups is smaller than it would be if doing a mysqldump.
Here's a screenshot:
drupal-backup-and-migrate.png
There are also options to compress the file before download, or add a datestamp:
drupal-backup-settings.png
The Backup & Migrate modules is one of the best Drupal Modules. I can't imagine going back to the old method. It's great because even clients can backup their own websites. This module doesn't backup the files for you, but it's quick to backup the files over SSH, or just download over sFTP.

Add new fields in joomla registration form

Let us add a custom field phone and mobile in registration form
libraries\joomla\database\table\user.php it’s the class file tor user table/user object
function __construct( &$db )
//add new field
var $phone = null;
var $mobile= null;
after that open
libraries\joomla\libraries\joomla\user\user.php
//add this code
var $phone = null;
var $mobile= null;
Add two fields in users table
ALTER TABLE jos_users ADD phone varchar(255) DEFAULT '' 
AFTER password;
ALTER TABLE jos_users ADD mobile varchar(255) DEFAULT '' 
AFTER phone;

Now go to Now go to administrator\components\com_users\views\
user\tmpl

<tr>
<td width="150">
<label for="phone">
 <?php echo JText::_( 'Phone' ); ?>
</label>
</td>
<td>
<input type="text" name="phone" id="phone" size="40"
 value="<?php echo $this->user->get('phone'); ?>" />
</td>
</tr>
<tr><td width="150">
<label for="mobile">
<?php echo JText::_( 'Mobile' ); ?>
</label>
</td>
<td>
<input type="text" name="mobile" id="mobile" size="40"
value="<?php echo $this->user->get('mobile'); ?>" />
</td>
</tr>
Also in components\com_user\views\register\tmpl
<tr>
<td height="40">
<label id="phonemsg" for="phone">
<?php echo JText::_( 'Phone' ); ?>:
</label>
</td>
<td>
<input type="text" name="phone" id="phone" size="40"
 value="<?php echo $this->escape($this->user->get( 'phone' ));?>" 
maxlength="50" /> *
</td>
</tr>
<tr>
<td height="40">
<label id="websitemsg" for="mobile">
<?php echo JText::_( 'Mobile' ); ?>:
</label>
</td>
<td>
<input type="text" name="mobile" id="mobile" size="40"
value="<?php echo $this->escape($this->user->get( 'mobile' ));?>" 
maxlength="50" /> *
</td>
</tr>

newest questions on wordpress